如何冻结仅在虚拟环境中安装的软件包?

Posted

技术标签:

【中文标题】如何冻结仅在虚拟环境中安装的软件包?【英文标题】:How to freeze packages installed only in the virtual environment? 【发布时间】:2011-12-25 18:20:03 【问题描述】:

如何冻结只安装在虚拟环境中的包,即没有全局的包?

【问题讨论】:

【参考方案1】:

对我(macOS)来说,以下工作

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

【讨论】:

【参考方案2】:

我在 Windows 10,python 3.6 上,使用命令提示符激活了名为 env 的虚拟环境我发现 pip freeze -l 不起作用(错误),python -m pip freeze -l 不起作用(获取全局包)但更改为我的虚拟环境脚本目录并运行pip freezepip freeze -l 有效。这是我的虚拟环境 env 的此解决方案/解决方法的示例:

cd \env\Scripts
pip freeze > ..\..\requirements.txt

【讨论】:

【参考方案3】:
python venv/Path_to/bin/pip freeze -l 

【讨论】:

【参考方案4】:

您需要使用-l--local 选项仅冻结本地包(而不是全局包)

pip freeze -l > requirements.txt 

在进行pip freeze -l 之前,请确保您在virtualenv 中工作。

【讨论】:

对我来说这有效(或使用 python 用于旧版本):python3 -m pip freeze -l > requirements.txt【参考方案5】:

试试下面的命令:

pip -E /path/to/env/ freeze

【讨论】:

我认为-E参数是使用里面的requirements.txt文件来显示版本控制项目地址 它们是不同的“-E”参数:这是命令行参数,表示 pip 在给定的 virtualenv 中执行 你能指点我这方面的文档吗?即使启用了全局站点包,它是否也只冻结指定的 deverelenv? 运行“pip help”并查看“选项”部分。 $ pip -E venv/ freeze Usage: pip COMMAND [OPTIONS] pip: error: no such option: -E【参考方案6】:

在你的虚拟环境中安装你需要冻结的任何东西,然后

pip freeze > requirements.txt

然后在你不想冻结的虚拟环境中安装包。

【讨论】:

【参考方案7】:

仅虚拟环境中的本地包

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

只有用户在虚拟环境中安装的本地包

pip freeze --user > requirements.txt

有关详细信息,请参阅文档:https://pip.pypa.io/en/stable/reference/pip_freeze/。

【讨论】:

以上是关于如何冻结仅在虚拟环境中安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章

使用 vagrant 在桌面环境下运行虚拟机

激活和关闭虚拟环境

windows 下 创建项目的虚拟环境

python虚拟环境简单介绍

windows下如何安装Python虚拟环境

Windows7下VirtualBox中安装的ubuntu如何设置共享文件夹?