【发布时间】:2013-06-06 10:50:18
【问题描述】:
我正在使用virtualenv。我安装了fabric 和pip。但是pip freeze 并没有给出任何暗示。包裹在那里,在我的virtualenv 中,但 pip 对此保持沉默。为什么会这样?有什么办法可以调试吗?
【问题讨论】:
-
你在使用 virtualenv 中的
pip吗?
标签: python virtualenv pip fabric
我正在使用virtualenv。我安装了fabric 和pip。但是pip freeze 并没有给出任何暗示。包裹在那里,在我的virtualenv 中,但 pip 对此保持沉默。为什么会这样?有什么办法可以调试吗?
【问题讨论】:
pip 吗?
标签: python virtualenv pip fabric
您可以尝试使用--all 标志,如下所示:
pip freeze --all > requirements.txt
【讨论】:
除了上述修复之外,还添加了我的修复,
我在 Windows 上也遇到了同样的问题,即使在激活 virtualenv 之后pip freeze 也没有给我所有已安装软件包的列表。所以我用python -m pip install --upgrade pip 命令升级了我的pip,然后使用pip freeze。
这次它成功了,并给了我所有已安装软件包的列表。
【讨论】:
虽然您的问题是由于拼写错误,但为了帮助其他用户:
pip freeze 不显示 pip 所依赖的依赖项。如果你想获取所有的包你可以使用pip freeze --all或者pip list。
【讨论】:
我自己也试过了:
在“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 以找出答案。
【讨论】:
pip freeze | grep fabric(我安装了很多数据包)。我可以发誓我已经手动扫描了整个列表,但不知何故我跳过了。奇怪的是它被安装为Fabric,但无论如何在我这边表现不是很好。
grep -i 也是我的朋友 :)
grep -i,但在这种情况下,我非常确信应该是fabric,我什至没有考虑过这一点。我的意思是,fabric 团队中的谁提出了打破多年来使用小写作为包名的传统的想法? :) 特别是当包在pypi 上调用fabric 时。
django注册为Django?
如果您已将所有预安装的软件包重定向到一个名为 pip-requirements.txt 的文件中,那么解决上述问题非常简单。
1) 删除您的 virtualenv 文件夹或创建新文件夹(我将其命名为 venv)
rm -rf venv && virtualenv venv
2) 安装 pip-requirements.txt
中的所有 requirements/dependenciespip install -r pip-requirements.txt
3) 现在您可以检查 Django 应用程序的已安装包
pip freeze
4) 如果您忘记更新需求文件 (pip-requirements.txt),请再次安装 fabric(可选步骤 )
注意:在为您的 Django 应用程序安装任何依赖项后,请始终按如下方式更新任何文件中的要求(确保您的 virtualenv 是激活)
pip freeze > pip requirements.txt
就是这样。
【讨论】:
这可能很愚蠢,但我也遇到了同样的问题。我通过刷新vs代码文件目录解决了它(vscode里面有一个重新加载按钮)。 :)
【讨论】:
如果以上答案都不适合您。 和我一样,你的 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。
【讨论】: