[英]pip freeze does not show all installed packages
我正在使用virtualenv
。 我安装了fabric
,带有pip
。 但是pip freeze
并没有给出任何提示。 package 在我的virtualenv
中,但 pip 对此保持沉默。 为什么会这样? 有什么办法调试这个?
我只是自己试过这个:
在“env”目录中创建一个 virtualenv:
$virtualenv2.7 --distribute env
New python executable in env/bin/python
Installing distribute....done.
Installing pip................done.
接下来,激活虚拟环境:
$source env/bin/activate
提示改变了。 现在安装结构:
(env)$pip install fabric
Downloading/unpacking fabric
Downloading Fabric-1.6.1.tar.gz (216Kb): 216Kb downloaded
Running setup.py egg_info for package fabric
...
Successfully installed fabric paramiko pycrypto
Cleaning up...
pip freeze
显示正确的结果:
(env)$pip freeze
Fabric==1.6.1
distribute==0.6.27
paramiko==1.10.1
pycrypto==2.6
wsgiref==0.1.2
也许您忘记激活虚拟环境? 在 *nix 控制台类型which pip
要找出which pip
。
尽管您的问题是由于拼写错误造成的,但为了帮助其他用户:
pip freeze
不显示 pip 依赖的依赖项。 如果要获取所有包,可以使用pip freeze --all
或pip list
。
您可以尝试使用--all
标志,如下所示:
pip freeze --all > requirements.txt
如果您已将所有预安装的软件包重定向到名为pip-requirements.txt的文件中,那么解决上述问题非常简单。
1) 删除您的 virtualenv 文件夹或创建一个新文件夹(我将其命名为venv )
rm -rf venv && virtualenv venv
2) 从pip-requirements.txt安装所有需求/依赖项
pip install -r pip-requirements.txt
3) 现在您可以检查 Django 应用程序的已安装包
pip freeze
4)如果你忘记更新你的需求文件( pip-requirements.txt ),那么再次安装fabric (可选步骤)
注意:为您的Django应用程序安装任何依赖项后,请始终按如下方式更新任何文件中的要求(确保您的virtualenv已激活)
pip freeze > pip requirements.txt
而已。
除了上述修复程序之外,还添加了我的修复程序,我在 Windows 上也遇到了同样的问题,即使在激活 virtualenv 之后pip freeze
也没有给我所有已安装软件包的列表。 所以我用python -m pip install --upgrade pip
命令升级了我的 pip,然后使用了pip freeze
。 这次它起作用了,并给了我所有已安装软件包的列表。
如果以上答案都不适合您。 和我一样,你的 venv 和 pip 配置可能有问题。
进入你的 venv/bin 并打开 pip 并看到第二行: '''exec' "path/to/yourvenv/bin/python3" "$0" "$@"
看看这条线是否正确指向你的 venv 内部例如在我的情况下。 我最初将我的虚拟环境命名为 venv1,后来只是将其重命名为 venv2。 这样做时,我的 pip 文件第二行有: '''exec' "venv1/bin/python3" "$0" "$@"正常工作应该有: '''exec' "venv2/bin/python3" "$0 " "$@"注意"venv2"而不是"venv1",因为 venv1 现在更名为 venv2。
由于这个 python 正在查看 venv2 的 pip 并抛出错误或无法按预期工作。
对于那些通过 PyCharm IDE 添加 Python 模块的人,在从命令提示符生成虚拟环境后,祝你好运。 您将需要通过首先运行 pip3 freeze 并添加 PyCharm 中缺少的内容来手动重建 requirements.txt 文件。
我强烈建议切换到 Visual Studio Code。
这可能很愚蠢,但我遇到了同样的问题。 我通过刷新 vs 代码文件目录来解决它(在 vscode 里面有一个重新加载按钮)。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.