我需要安装多少个macports

时间:2011-12-16 21:56:03

标签: python osx-snow-leopard 32bit-64bit macports

在过去的几个月里,我开始使用Wing IDE来完成绝大部分的编程工作。我之所以选择Wing主要是因为它与wxPython配合得很好,这使得我比在使用TextWrangler和Terminal时的情况下调试更快。然而,Wing的一个怪癖是没有令人满意的方法来强制python的通用构建在32位模式下运行。由于我使用的是wxPython 2.8.x(仅限32位),我使用的是32位版本的python作为可执行文件(2.7.1)。只要我只使用python标准库和wxPython我没有问题,当我开始尝试安装第三方模块来使用这个32位版本的Python时,我的麻烦就开始了。我想使用macports进行所有安装,但似乎我已下载的macport安装模块只能用于不同版本的python,这恰好是通用的。从本质上讲,这是一个关于macports的问题,我很欣赏以下两点的澄清:

  1. 如果我想在我的电脑上使用三个版本的python(比如2.6,2.7和3.2),并且想要使用macports为每个版本安装模块,我是否需要三个不同版本的macports - 每个python一个? / LI>
  2. 如果我是对的(1)如何设置安装单独的版本?我查看了macports网站,但根据你想用它的哪个版本的python找不到替代版本的参考
  3. 非常感谢。

2 个答案:

答案 0 :(得分:3)

不,你不需要单独版本的macport,你需要的是python的单独版本。

明确步骤:

  1. 安装macports。之后您应该能够使用port命令。如果您使用的是Mac安装程序,则应自动在路径中首先/opt/local/bin
  2. 安装python 2.6 - sudo port install python26
  3. 安装python 2.7 - sudo port install python27
  4. 您可以使用python26到/opt/local/bin/python2.6
  5. 您可以使用python27到/opt/local/bin/python2.7

  6. 如果您想将python27用作默认值,请执行sudo port python-select python27。这样可以确保/opt/local/bin/python/opt/local/bin/python2.7相关联。

  7. Mac附带默认的python安装,但未删除。可以从/usr/bin/python访问它。

    Macports在路径/opt/local/opt/local/bin的二进制文件下安装它的工具。所以现在你将有多个版本的python并位于不同的位置,以便你可以选择运行哪个版本。

    使用特定版本的python安装的软件包将放在它的site-packages中,并且不能用于其他版本的python安装。

    [编辑:根据评论]

    我有多个版本的标准python安装。

    ~ $ /usr/bin/python
    python            python2.5         python2.6         pythonw           pythonw2.6        
    python-config     python2.5-config  python2.6-config  pythonw2.5 
    

    使用python2.5,我得到:

    >>> print platform.architecture()
    ('32bit', '')
    >>> sys.maxint > 2**32
    False
    

    使用python2.6,我得到:

    >>> print platform.architecture()
    ('64bit', '')
    >>> sys.maxint > 2**32
    True
    

    请参阅 - http://docs.python.org/library/platform.html

    处的说明

答案 1 :(得分:3)

安装在/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7的Python几乎肯定与MacPorts无关。您可能是从python.org安装程序安装的。如果要向其安装软件包,则应使用the Distribute package和/或pip为其安装单独版本的easy_install,并使用它们直接安装该Python实例的软件包。这些版本将安装在框架bin目录/Library/Frameworks/Python.framework/Versions/2.7/bin.中。您无法从MacPorts管理Python包;仅适用于MacPorts Pythons,即/opt/local/bin

因此,您似乎安装了三个版本的Python 2.7。 Apple提供的系统Python位于/usr/bin/python2.7,MacPorts安装版本位于/opt/local/bin/python2.7,第三位(可能来自python.org)位于/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7(可能存在符号链接) /usr/local/bin/python2.7)。安装所有三个并没有任何固有的错误,三者可以很容易地共存。请记住您正在使用的是哪一个,要么通过管理shell路径,要么使用每个路径的绝对路径,并且安装的任何其他软件包都需要安装到正确的Python的site-packages目录中。如果您使用easy_installpip,则需要为每个安装和/或使用正确的一个。

如果你的目标只是在Python 2.7中使用wx-python,那么由于它依赖于不推荐使用的OS X Carbon API,因此构建仅限32位版本的wx-python存在一个出色的MacPorts问题。 。 WxWidgets的Cocoa版本似乎有a new MacPorts port,它应该在64位模式下工作。您可能想要试验它:

sudo port selfupdate
sudo port install py27-wxpython-devel