- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
好吧,这很奇怪。我正在帮助一位使用 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/python
在 sys .路径
。但是在同事的机器上,/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/
我有两个包含 40000 个样本的数据集。我想用 python 计算这两个数据集之间的 Kullback-Leibler 散度。在 python 中有什么有效的方法吗? 最佳答案 编辑: 好的。我发现
我正在尝试编译一个 .c 文件,用于处理 mMIPS 指令集中硬件中的裁剪,但是我似乎在“results=sfu1”行处收到错误“宏参数数量不一致” ' 当我尝试使用 lcc -o mips_mem.
这个正则表达式 /{(\w+)}/g 应该匹配大括号 {} 之间 的每个单词字符。相反,我在 Regex101 JavaScript engine 中得到了不同的结果和 Chrome 控制台。 Reg
我是一名优秀的程序员,十分优秀!