尝试在Mac OS X 10.9上使用Homebrew来安装mercurial并确保它使用自制的python版本。
我已在/etc/paths
之前更新/usr/local/bin
以列出/usr/bin
。
使用brew install python
安装了python 2.7.9,python可执行文件位于/usr/local/bin/python
,这是/usr/local/Cellar/python/2.7.9/bin/python
的符号链接。
当我输入which python
或python -V
时,我会收到自制的python版本。
稍后,当我运行brew install mercurial
时,已安装的文件/usr/local/bin/hg
shebang(#!
)指向系统python /usr/bin/python
。
发生这种情况是因为mercurial python包安装程序(distutils)正在使用PATH变量将shebang中的python路径硬编码而不是#!/usr/bin/env python
。
当我检查我的PATH环境变量时,我在/usr/local/bin
之前看到/usr/bin
,但如果我尝试以交互方式安装brew包:brew install -i mercurial
我得到一个包含不同PATH变量的shell而没有完全/usr/local/bin
。
如何安装mercurial以确保它将使用自制的python版本? 我更喜欢一种可以在mercurial包升级中存活的方式。
答案 0 :(得分:1)
默认情况下,公式仅使用系统Python。你可以绕过Superenv(清理PATH),它应该从源代码构建时获取PATH中的任何内容:
$ brew reinstall mercurial --build-from-source --env=std
$ head -n 1 /usr/local/bin/hg
#!/usr/local/opt/python/bin/python2.7