gpt4 book ai didi

python - virtualenv 中的 pip 命令被系统 pip 命令忽略

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:19 24 4
gpt4 key购买 nike

我已经创建了一个 virtualenv 并激活了它。但是,当我运行 pip -V 时,我得到了这个输出:

pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

其中一个症状是我用 pip 安装的包被放在 /usr/local/lib/python2.7/site-packages 而不是在 virtualenv 中。

我检查了 virtualenv 中 bin/pip 脚本中的“shebang”行,它像它应该的那样指向 virtualenv 中的 python 解释器。

which pip 给出了这个输出:

/home/alastair/Geekery/Courses/IT Masters/Configuration Management/venv-course/bin/pip

最佳答案

当我尝试运行 venv-course/bin/pip -V 时,我得到了这个输出:

venv-course/bin/pip: Command not found.

但是文件在那里并且可以执行。根据我的经验,这仅在 Linux、MacOS 等无法解释脚本开头的 shebang 行时发生,因此声明它不可运行。

原来问题出在我的目录名中有空格,这意味着 shebang 行是这样的:

#!"/home/alastair/Geekery/Courses/IT Masters/Configuration Management/venv-course/bin/python2"

至少在 Linux 上,在指定脚本解释器的名称时不能使用引号和空格。

我尝试按如下方式编辑 shebang 行,但它仍然不起作用(不,前导空格不是问题):

#! /home/alastair/Geekery/Courses/IT\ Masters/Configuration\ Management/venv-course/bin/python2

解决方案

当我将路径中的目录重命名为带有下划线然后重新创建 virtualenv 时,shebang 行是这样的:

#!/home/alastair/Geekery/Courses/IT_Masters/Configuration_Management/venv-course/bin/python2

这一次,当我运行 pip -V 时,我得到了这个输出:

pip 1.5.6 from /home/alastair/Geekery/Courses/IT_Masters/Configuration_Management/venv-course/local/lib/python2.7/site-packages (python 2.7)

关于python - virtualenv 中的 pip 命令被系统 pip 命令忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com