Mar*_*eed 5 python macos python-2.7
好的,这很奇怪.我在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
Run Code Online (Sandbox Code Playgroud)
产量python -c 'import six; print six.__version__'
:
1.4.1
Run Code Online (Sandbox Code Playgroud)
相关地点:
$ type pip
pip is /usr/local/bin/pip
$ type python
python is /usr/bin/python
$ head -n 1 $(type -p pip)
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
$PYTHONPATH
没有在环境中设置.但他们仍然在寻找不同的地方.正如您从pip
输出中看到的那样,它正在寻找/存储/Library/Python/2.7/site-packages/
.但如果我循环sys.path
,我找到的第一个地方six
就是/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
.
那么脱节的地方在哪里?
事实证明,问题出在加载路径的顺序上。在我的Sierra 机器上(我验证了我能够安装新的six
默认值/usr/bin/python
),/Library/Python/2.7/site-packages
在. 但在同事的计算机上,是最后一个条目,位于文件夹之后,因此安装的版本被系统安装掩盖。 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
sys.path
/Library/Python/2.7/site-packages
Extras
pip
我怀疑这是由 Sierra 修复的 Yosemite Python 安装的问题,但无论如何我看不出有什么简单的修复方法。因此,选项是安装一个单独的 Python 实例(我的偏好;pyenv
无论如何我通常都会使用)或手动设置PYTHONPATH
为放在site-packages
前面。或者升级到更新的 macOS,我想。
感谢大家帮助解决这个问题。
归档时间: |
|
查看次数: |
94 次 |
最近记录: |