我正在使用一个virtualenv
. 我已经fabric
安装了,带有pip
. 但是 apip freeze
没有给出任何暗示。包裹在那里,在 my 中virtualenv
,但 pip 对此保持沉默。为什么会这样?有什么办法可以调试吗?
7 回答
我自己试过这个:
在“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
上查找。
您可以尝试使用该--all
标志,如下所示:
pip freeze --all > requirements.txt
尽管您的问题具体是由于拼写错误,但为了帮助其他用户:
pip freeze
不显示 pip 所依赖的依赖项。如果您想获得所有可以使用的包pip freeze --all
或pip list
.
除了上述修复之外,我还添加了我的修复,我在 Windows 上也面临同样的问题,即使在激活 virtualenv 之后也pip freeze
没有给我所有已安装包的列表。所以我用命令升级了我的 pip,python -m pip install --upgrade pip
然后使用pip freeze
. 这次它起作用了,并给了我所有已安装软件包的列表。
如果您已将所有预安装的软件包重定向到名为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
而已。
如果以上答案都不适合您。和我一样,你的 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 并抛出错误或无法按预期工作。
这可能很愚蠢,但我遇到了同样的问题。我通过刷新vs代码文件目录解决了它(vscode里面有一个重新加载按钮)。:)