我的一位同事希望在他的OS X(10.6)机器上使用我的python 2代码。我的代码导入了几个内置的python包,包括Tkinter和shelve,还使用了第三方包,包括numpy,scipy,matplotlib和ipython。
我在OS X的内置python中遇到了一些问题。 (IDLE不起作用,例如*)。我怀疑我应该安装more recent version of python和different version of Tk。
我的问题:
在同一台机器上有两个不同版本的python / Tk会导致问题吗?
我想将终端命令'python','ipython'和'easy_install'与更新版本的python相关联。我该怎么做?
当我安装第三方软件包如numpy using a .dmg file时,如何控制安装哪个版本的python numpy?
有更好的方法吗?
如果这个过程顺利,我会考虑在我的代码文档中添加OS X指令,所以我想把这个过程归结为最简单,最通用的方法。
*编辑:此外,this
编辑:谢谢大家的有用答案。我的同事尝试了MacPorts,它似乎运行良好,但有几个speedbumps。首先,我们必须从系统安装盘安装Xcode。这不是快速或轻量级安装(几GB)。幸运的是我们还有磁盘!安装Xcode后,MacPorts易于安装。 Python和我们需要的python子包也很容易安装,但他告诉我这个安装需要几个小时。据推测,这种延迟是由于汇编造成的?他很容易将MacPorts python设置为默认值。但是,我认为我们必须手动更改'Python Launcher'应用程序,这似乎仍然默认为系统python。即使他现在有一个工作系统,我很想让他尝试其他解决方案之一。我不确定我的所有代码的潜在用户是否都会容忍多小时,数千兆字节的安装。
答案 0 :(得分:10)
我使用brew
来安装我的所有库/编译器/解释器。
要安装python
,请尝试以下操作:
brew install python
然后将Python的二进制文件目录添加到$PATH
中的~/.profile
:
export PATH=`brew --prefix python`/bin:$PATH
我建议您安装pip
,virtualenv
和virtualenvwrapper
,以便更好地控制您的环境。
答案 1 :(得分:5)
您是否尝试过ActivePython?
它包含一个包管理器(PyPM),默认情况下会安装到您的主目录中(例如:~/Library/Python/2.7
)。主要脚本在/usr/local/bin
中进行符号链接;使用包含的pythonselect
来设置活动的Python版本。
您不必费心安装.dmg软件包,因为PyPM是二进制软件包管理器...因此您可以安装非纯Python软件包,如NumPy,而不必自己编译。
ActivePython可以使用Apple的Tcl / Tk,如果安装了ActiveTcl,也可以使用。
您的文档中的“最简单,最通用的方法”可以是:
pypm-2.7 install matplotlib ipython
答案 2 :(得分:2)
在几乎所有情况下,使用的最佳python是来自http://python.org/的python。它正确设置路径,不会覆盖任何内容。 DMG包安装通常会自动工作,python setup.py install
也是如此,并且让setuptools
工作起来并不困难。如果您希望按用户安装,则可以轻松设置.pydistutils.cfg
并且python会自动识别路径install_lib = ~/Library/Python/$py_version_short/site-packages
答案 3 :(得分:2)
使用MacPorts,您可以使用自己的软件包同时安装python 2.6,2.7,3.1和3.2,而无需触及内置的python。
numpy,scipy,matplotlib和ipython也可用作大多数python版本的端口。
此外,如果您安装python_select端口,您将能够:
选择其中哪一个(加上内置的python)是“默认”python;
通过easy_install / pip为“selected”python安装python包,如果它们不能作为端口使用。
将virtualenv添加到组合中,您将拥有一个非常非常灵活的Python开发环境。
关于你的问题:
Q1:使用MacPorts,没有。虽然不是常用的用户,但我在2.6和2.7中安装并使用了matplotlib,使用python_select在两者之间切换。
Q2:easy_install,pip,ipython将“链接”到他们安装的python上。 (但见提示1)
问题3:在python_select'ed python下安装py {26,27,xx} -numpy端口或pip install numpy
之一更容易。
现在,如果您尝试使用MacPorts,请提供两个提示:
MacPorts在OS X安装中与/ opt / local目录中分别安装端口,每个python版本都安装在/opt/local/Library/Frameworks/Python.framework/Versions/{2.5,2.6,2.7,...}
目录中。使用python_select干净地使用链接切换“python”命令。但是......安装了python脚本的Versions/{2.5,2.6,2.7,...}/bin
目录没有添加到PATH中。只需将export PATH=/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
添加到~/.profile
,您就可以直接访问为所选python安装的脚本。
为避免出现意外错误,我在echo Selected python is \"$(python_select -s)\"
添加了~/.profile
行,所以我在打开会话时总是知道哪个是我当前选择的python ... :-)
问候,
乔治
答案 4 :(得分:2)
有关brew
用法的附录:
一段时间以来,brew install python
将安装python 3 。
如果您打算安装python 2 ,则要使用
brew install python@2
使用brew安装python和python3都很好!
答案 5 :(得分:1)
Here is an old post that answers your questions too.
通常,在您的计算机上安装多个python根本不是问题。您只需要注意在命令行中调用哪一个。
>> which python
...有助于识别python二进制文件的位置。最初的Mac OS X python通常位于“/ usr / bin / python”
我个人使用MacPorts python安装。它还支持您安装模块。 (见上面的链接)
答案 6 :(得分:-1)
我的MacBook Pro上有4个版本的python。 2.从原来安装的OS X 10.6和随后的更新,然后自行安装python 2.7和3.2的副本。您可以更新python
命令以指向任何版本。它们都安装在不同的目录中,彼此没有问题。
我不确定从.dmg文件安装时会发生什么。我相信它只会使用任何版本的python
点。
superuser.com上的这个post会回答您关于更改默认路径的问题。