Mac OS X中预安装的Python与MacPorts Python的区别
3 个回答
默认安装的库比较旧。有些预装的库,比如Twisted,和它配合得不错。但是一旦你添加更多的库,比如PyQt4,事情就开始变得复杂了。当然,你可以从源代码编译这些额外的库。
使用MacPorts就简单多了。你只需要获取一个与他们版本的PyQt4、Twisted等兼容的Python运行环境。不过对于Django我就不太清楚,因为我从来没用过。
如果你用MacVim编辑.py文件,使用MacPorts版本的MacVim会给你提供额外的Python兼容性(比如语法高亮等功能)。
这里有很多不错的建议可以帮助你解决问题,但回答你具体问题的人不多。这些不同版本的主要区别在于它们放置和加载二进制文件和库模块的位置。Mac上有很多Python安装程序,它们可能会把东西放在 /opt/local/Library/Frameworks/Python.framework/Versions/*
、/Library/Frameworks/Python*
、/usr/local/python/*
等等。
这些版本之间并没有本质上的差别或谁更好(除了它们的Python版本号所表示的差异),关键在于找到合适的安装方法,让它能识别并将未来的包与安装的正确版本关联起来。如果你坚持用一种方法安装(自己编译、使用macports或homebrew,或者下载预编译的.dmg文件),那么让你的库对上号的可能性就会大大增加。
在Mac上工作时,我更喜欢不使用内置的Python(因为它通常比较旧),而是使用macports。所以,我总是通过macports安装python26和Python库。如果某个包不可用,我会先用 which python
命令查看我正在使用哪个解释器,如果不是合适的版本,我会使用macports的 python_select
选项来确保我用的是正确的版本。然后,我会在那个Python版本上用pip进行安装。
最重要的是确保你有正确版本的Python和你想用的库对上。如果情况真的很糟糕,你找到了包管理器安装模块的位置,可以把它添加到 sys.path
列表中,这样就能从你正在使用的解释器加载模块——不过我觉得这样做有点麻烦。
我觉得它们是一样的。我一直在用macports版本,没遇到什么问题。不过我也经历过和你一样的麻烦,想让PIL在GAE上工作。这里有几个步骤可以帮助你成功:
- 安装macports
- 运行命令:sudo port install py26-pil +universal
- 在aptana/pydev里,你需要配置一个新的解释器。去设置里找到pydev,然后选择解释器-python,点击新建,然后浏览到这个路径:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
- 一旦配置好新的解释器,你就可以开始了 :)