Как заморозить пакеты, установленные только в виртуальной среде?

Как заморозить пакеты, установленные только в виртуальной среде, то есть без глобальных?


person saul.shanabrook    schedule 09.11.2011    source источник


Ответы (6)


Вам нужно использовать параметр -l или --local, чтобы заморозить только локальные пакеты (а не глобальные)

pip freeze -l > requirements.txt 

Убедитесь, что вы работаете в virtualenv, прежде чем выполнять pip freeze -l.

person Muneeb Ali    schedule 02.07.2013
comment
Для меня это сработало (или используйте python для более старых версий): python3 -m pip freeze -l > requirements.txt - person user2340939; 20.05.2019

Только локальные пакеты в виртуальной среде

pip freeze -l > requirements.txt # or --local instead of -l

Только локальные пакеты, установленные пользователем в виртуальной среде

pip freeze --user > requirements.txt

Дополнительную информацию см. В документации: https://pip.pypa.io/en/stable/reference/pip_freeze/.

person Bitcoin Mexico    schedule 04.03.2017

Для меня (macOS) сработало следующее

path/to/venv/bin/pip3 freeze -l
person Codey    schedule 23.05.2020

Я использую Windows 10, python 3.6, моя виртуальная среда под названием env активирована с помощью командной строки. Я обнаружил, что pip freeze -l не работает (ошибка), python -m pip freeze -l не работает (получает глобальные пакеты), но меняется на мой каталог сценариев виртуальной среды и работает pip freeze или pip freeze -l. Вот пример этого решения / обхода моей виртуальной среды env:

cd \env\Scripts
pip freeze > ..\..\requirements.txt
person orangecaterpillar    schedule 07.04.2020

Установите все, что вам нужно, чтобы заморозить в своей виртуальной среде, а затем

pip freeze > requirements.txt

После этого установите пакеты в виртуальной среде, которые вы не хотите замораживать.

person César    schedule 10.11.2011

Попробуйте следующую команду:

pip -E /path/to/env/ freeze
person Dima Bildin    schedule 10.11.2011
comment
Я думаю, что параметр -E использует внутри файла requirements.txt, чтобы показать адрес проекта управления версиями. - person saul.shanabrook; 10.11.2011
comment
Это разные параметры -E: это параметры командной строки, в которых говорится, что pip выполняет внутри данного virtualenv - person Dima Bildin; 10.11.2011
comment
Не могли бы вы указать мне документацию по этому поводу? Замораживает ли он только указанный virtuelenv даже при включенных глобальных пакетах сайта? - person saul.shanabrook; 11.11.2011
comment
Запустите pip help и посмотрите раздел «Параметры». - person Dima Bildin; 11.11.2011