在Mac上是否可以安装homebrew和Enthought的Python而不相互干扰?
我非常喜欢在我的Mac上使用Homebrew来管理软件包(我用的是OS X 10.6,x86_64)。不过,我最近尝试安装MayaVi和wxPython等软件,结果真是太麻烦了。请问有没有办法从Enthought的预编译版本安装Python发行版,而不会影响我的Homebrew设置呢?
谢谢!
Uri
3 个回答
我建议你试试 Python 的 virtualenv
,这个工具可以让你有一个“默认”的环境,里面可以用到 Homebrew 安装的各种好东西。当你想用 EPD 的时候,只需要运行一下就可以了。
python virtualenv.py EPD
你可能需要卸载然后重新安装 Enthought,这个过程可能会遇到一些挑战。我当时走这条路的时候,最后放弃了 EPD,转而回到基于网页的图形工具 d3(d3js.org)和它相关的 Python 库(https://github.com/mikedewar/d3py)。
K.-Michael Aye 写的内容似乎有效。我花了一些时间才明白(我对 Python 和终端还不太熟悉),所以如果你也在这个阶段,这里有一些代码可以参考:
你的 .bash_profile
文件告诉系统该使用哪个 Python 包。这个文件位于 ~/.bash_profile
,如果你安装了 EPD Python,它应该看起来像这样:
# Setting PATH for EPD-7.3-2
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH
MKL_NUM_THREADS=1
export MKL_NUM_THREADS
把 PATH
和 export
这两行前面加上井号(#),这样就可以把它们注释掉。然后重启终端,检查一下 Homebrew:
$ brew doctor
Your system is raring to brew.
当你完成 Homebrew 安装后,再把刚才注释掉的那两行去掉,然后再次重启终端,这样就可以使用 EPD Python 了。
这没什么问题,只要你的 PATH 和 PYTHONPATH 设置正确就行。我自己使用的是官方最新的 Python 版本(2.7.x),同时还在用 32 位的 EPD Python 和 64 位的 Python,所有我需要做的就是快速编辑我的 .bash_profile 文件,来正确设置 PATH。
其实还有更聪明的方法来高效管理不同版本,比如不动 PATH 和 PYTHONPATH,而是让它们指向一个软链接,当你想用不同的 Python 版本时只需要更改这个链接(就像 /Library/Frameworks/Python.Framework/Versions/Current 里的链接)。不过我更喜欢快速注释掉我 .bash_profile 中的 PATH 定义。
另外一个管理不同环境的工具是 Python 的一个包 virtualenv。