Как заморозить пакеты, установленные только в виртуальной среде?
Как заморозить пакеты, установленные только в виртуальной среде, то есть без глобальных?
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
Установите все, что вам нужно, чтобы заморозить в вашей виртуальной среде, а затем
pip freeze > requirements.txt
После этого установите пакеты в виртуальной среде, которую вы не хотите замораживать.