gpt4 book ai didi

python - Pip 和 Python 在模块位置上存在分歧

转载 作者:太空狗 更新时间:2023-10-30 01:32:05 24 4
gpt4 key购买 nike

好吧,这很奇怪。我正在帮助一位使用 Mac (Yosemite) 的同事,在 /usr/bin/python (2.7.10) 中运行随附的 Python 可执行文件。我使用随附的 easy_install 来安装 pip (9.0.1),它存放在 /usr/local/bin 中,带有 shebang 行#!/usr/bin/python。然后我使用 pip 安装了一些模块,包括 six,却发现 pip 和 python 在某种程度上不同意该模块的版本:

pip install -vvv -U six 的尾部:

Installed version (1.10.0) is most up-to-date (past versions: 0.9.0, 0.9.1, 0.9.2, 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1, 1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.8.0, 1.9.0, 1.10.0)
Requirement already up-to-date: six in /Library/Python/2.7/site-packages

python -c 'import six; 的输出;打印 six.__version__':

1.4.1

相关位置:

$ type pip
pip is /usr/local/bin/pip
$ type python
python is /usr/bin/python
$ head -n 1 $(type -p pip)
#!/usr/bin/python

$PYTHONPATH 未在环境中设置。但他们仍在寻找不同的地方。正如您从 pip 输出中看到的那样,它正在查找/存储在 /Library/Python/2.7/site-packages/ 中。但是,如果我遍历 sys.path,我首先找到 six 的地方是 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/.

那么断开连接在哪里?

最佳答案

问题原来是加载路径的顺序。在我的 Sierra 机器上(我验证了我能够为默认的 /usr/bin/python 安装新的 six),/Library/Python/2.7/site-packages before /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/pythonsys .路径。但是在同事的机器上,/Library/Python/2.7/site-packages 是最后一个条目,在 Extras 文件夹之后,所以 pip-安装的版本被系统安装掩盖了。

我怀疑这是由 Sierra 修复的 Yosemite Python 安装的问题,但无论如何我认为没有简单的修复方法。所以选项是安装一个单独的 Python 实例(我的偏好;无论如何我通常使用 pyenv)或手动设置 PYTHONPATH 以放置 site-packages在前面。或者升级到更新的 macOS,我想。

感谢大家帮助解决这个问题。

关于python - Pip 和 Python 在模块位置上存在分歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638629/

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