2011-03-08 81 views
3

我的一个同事想要在他的OS X(10.6)机器上使用我的python 2代码。我的代码导入了几个内置的python软件包,包括Tkinter和shelve,还使用了第三方软件包,包括numpy,scipy,matplotlib和ipython。在OS X上安装python 2的最佳方式是什么?

我遇到了OS X的内置python的一些问题。 (IDLE不起作用,例如*)。我怀疑我应该安装一个more recent version of python和一个different version of Tk

我的问题:

  1. 威尔接在同一机器造成问题的两个不同版本的Python/Tk的吗?

  2. 我想使用更新版本的python将终端命令'python','ipython'和'easy_install'关联起来。我应该怎么做?

  3. 当我安装像numpy using a .dmg file这样的第三方软件包时,如何控制将python numpy安装到哪个版本?

  4. 有没有更好的方法来做到这一点?

如果这个过程顺利的话,我会考虑加入OS X说明我的代码的文档,所以我想这个过程归结为最简单,最普遍的做法。

*编辑:另外,this

编辑:谢谢大家的有用的答案。我的同事试用了MacPorts,这似乎运作良好,但有一些速度惊人。首先,我们必须从系统安装盘安装Xcode。这不是一个快速或轻量级的安装(几GB)。幸运的是,我们仍然有磁盘!一旦安装了Xcode,MacPorts便于安装。 Python和我们需要的python子包也很容易安装,但他告诉我这个安装需要几个小时。据推测,这种延迟是由于汇编?他很容易将MacPorts python设置为默认值。但是,我认为我们必须手动更改“Python启动器”应用程序,这似乎仍然默认为系统python。

即使他现在有一个工作系统,我很想让他去尝试其他解决方案之一。我不确定我的所有代码的潜在用户都可以容忍多小时,多吉比特的安装。

+0

注意到,OSX 10.6与Python 2.4如果内存正确运行并且2.6版本更新,则内存仍然可用。我不使用默认安装... – Endophage 2011-03-08 17:06:52

+0

我从来没有用过它,但MacPorts可以为安装或不安装MacPorts的目标系统生成预编译的二进制包:http://guide.macports。 org /#using.binaries – 2011-03-20 22:32:46

+0

macports现在有一个构建服务器,并且对于Sl和Lion可以生成预编译的二进制文件 - 您仍然需要Xcode - 现在来自应用程序Stroe – Mark 2012-06-25 16:00:00

回答

2

使用MacPorts,您可以同时安装python 2.6,2.7,3.1和3.2,并使用它们自己的软件包,而无需触摸内置python。

numpy,scipy,matplotlib和ipython也可用作大多数python版本的端口。

而且,如果你安装了python_select端口,您将能够:

  • 选择那些中的哪一个(加上内置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_selected python下安装py {26,27,xx} -numpy端口或pip install numpy更容易。

Q4:好,MacPorts的是我后APT在Debian/Ubuntu的知道的最好的事情... :-)

现在,两个小技巧,如果你尝试使用MacPorts:

  1. 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安装的脚本。

  2. 避免坏的惊喜,我添加了一个echo Selected python is \"$(python_select -s)\"线我~/.profile,所以我总是知道这是我的当前选择蟒蛇打开会话时... :-)

的问候,

乔治

+0

+1用编号列表回答编号列表。 – Andrew 2011-03-08 20:50:50

+0

ooops ...对不起@sebs,我不知何故错过了你提及的MacPorts和你的链接。:-q – 2011-03-08 20:51:09

-1

我在我的MacBook Pro上有4个版本的python。 2从OS X 10.6的原始安装和后续更新,然后自行安装的Python 2.7和3.2的副本。您可以更新python命令以指向任何版本。它们都安装在单独的目录中,彼此不会造成任何问题。

我不确定从.dmg文件安装时会发生什么情况。我相信它只会使用任何版本python指向。

superuser.com上的这个post回答你关于改变默认路径的问题。

+3

如果您要投票,请留下评论原因。 .. – Endophage 2011-03-08 17:02:05

8

我使用brew来安装我所有的库/编译器/解释器。

要安装python试试这个:

brew install python 

然后在你的~/.profile添加Python的二进制文件目录到你的$PATH

export PATH=`brew --prefix python`/bin:$PATH 

我建议你安装pipvirtualenvvirtualenvwrapper有也更好地控制你的环境。

+2

你如何控制python'brew'安装的版本? – Endophage 2011-03-08 17:01:34

+0

'brew info python' – igorgue 2011-03-08 17:02:34

+0

所以我不使用brew,我猜测info命令会告诉你python的版本是什么,但它是否给你提供安装不同版本的选项? – Endophage 2011-03-08 17:04:04

2

在几乎所有情况下,使用的最好的Python是http://python.org/。它正确设置路径并且不覆盖任何东西。 DMG软件包安装通常会自动运行,如同python setup.py install一样,并且setuptools也不会太难运行。如果你想每用户安装,很容易建立.pydistutils.cfg和Python自动识别路径install_lib = ~/Library/Python/$py_version_short/site-packages

1

Here is an old post that answers your questions too.

一般来说是没有问题的,在所有的电脑上有一个以上的Python安装。你只需要注意你在命令行中调用哪一个。

>> which python 

...有助于确定您的python二进制文件所在的位置。原来的Mac OS X python通常位于“/ usr/bin/python”

我个人使用MacPorts python安装。它还支持您安装模块。 (请参阅上面的链接)

+0

好的发现,我会给它一个阅读。 – Andrew 2011-03-08 18:06:46

5

你试过ActivePython

它包含一个软件包管理器(PyPM),默认情况下它将安装到您的主目录(例如:~/Library/Python/2.7)。主要脚本获得符号链接/usr/local/bin;使用包含的pythonselect来设置活动的Python版本。

你不必费心安装的.dmg封装,PyPM是二进制包管理......因此,你可以安装非纯Python包一样NumPy,而不必自己编译的东西。

ActivePython可以使用Apple的Tcl/Tk或者如果安装了ActiveTcl。

A “最简单,最普遍的做法” 你的文档中可能是:

  1. 安装ActivePython的2.7
  2. 打开终端,并键入pypm-2.7 install matplotlib ipython
+0

谢谢,我想我会尝试下一个 – Andrew 2011-03-16 22:55:27

+1

+1,我使用ActivePerl,我最喜欢的Python编辑器是Komodo。 – Gabe 2011-03-16 23:17:38

相关问题