如何在虚拟环境中仅冻结安装的软件包,而不是全局环境中的软件包?
如何在虚拟环境中仅冻结安装的软件包,而不是全局环境中的软件包?
-l
或--local
选项来仅冻结本地包(不是全局的)。
-l指定仅冻结与当前项目相关联的包,而忽略全局安装的包。这个选项有时被称为“local mode”。
pip freeze -l > requirements.txt
在执行 pip freeze -l
命令之前,请确保您已经在 virtualenv
中工作。
pip freeze -l > requirements.txt # or --local instead of -l
仅限用户在虚拟环境中安装的本地程序包
pip freeze --user > requirements.txt
对于我(macOS),以下操作适用:
path/to/venv/bin/pip3 freeze -l
我正在使用Windows 10操作系统,Python版本为3.6。在命令提示符下激活了名为env的虚拟环境后,发现pip freeze -l
无法正常工作(会出现错误),python -m pip freeze -l
也不行(会获取全局包)。但是,如果进入我的虚拟环境Scripts目录并运行pip freeze
或pip freeze -l
,则可以正常工作。以下是使用这种解决方案/变通方法的示例,其中虚拟环境名为env:
cd \env\Scripts
pip freeze > ..\..\requirements.txt
python venv/Path_to/bin/pip freeze -l
我尝试了所有的方法,即使在虚拟环境中也没有生效。这段代码对我有效。它仅显示venv中的pip软件包。
venv\Scripts\python.exe venv\Scripts\pip.exe freeze > requirements.txt
在您的虚拟环境中安装需要冻结的任何内容,然后
pip freeze > requirements.txt
然后在虚拟环境中安装您不想冻结的软件包。
尝试使用以下命令:
pip -E /path/to/env/ freeze
-E
参数是在requirements.txt文件内部使用的,用于显示版本控制项目地址。 - saul.shanabrook
python
):python3 -m pip freeze -l > requirements.txt
- user2340939