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

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

8 ответов

Решение

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

pip freeze -l > requirements.txt 

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

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

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

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

pip freeze --user > requirements.txt

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

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

path/to/venv/bin/pip3 freeze -l

Я пробовал все, даже внутри venv это не сработало. Этот код работал для меня. Он показывает только пакеты pip в venv.

      venv\Scripts\python.exe venv\Scripts\pip.exe freeze > requirements.txt 

Я использую 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
python venv/Path_to/bin/pip freeze -l 

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

pip freeze > requirements.txt

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

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

pip -E /path/to/env/ freeze
Другие вопросы по тегам