【问题标题】:How many installations of macports do I need我需要安装多少个macports
【发布时间】:2012-01-22 08:40:51
【问题描述】:

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

  1. 如果我想在我的计算机上安装三个版本的 python(比如 2.6、2.7 和 3.2),并且想使用 macports 为每个模块安装模块,我是否需要三个单独的 macports 版本 - 每个 python 一个?
  2. 如果我对 (1) 的看法是正确的,我该如何着手安装单独的版本?我查看了 macports 网站,但没有找到基于您要使用的 python 版本的替代版本的参考

非常感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

    不,您不需要单独版本的 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. 可以通过/opt/local/bin/python2.6使用python26
    5. 您可以通过/opt/local/bin/python2.7使用python27

    6. 如果您想使用 python27 作为默认值,请执行sudo port python-select python27。这将确保/opt/local/bin/python 链接到/opt/local/bin/python2.7

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

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

    使用特定版本的 python 安装的包将放在它的站点包中,并且不适用于其他版本的 python 安装。

    [编辑:基于 cmets]

    我有多个版本的标准 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 上的说明

    【讨论】:

    • 谢谢。我认为我遇到的问题是我有两个版本的 python2.7,其中一个是 32 位的,而另一个是通用的。他们是一种指定我要为这两个版本中的哪一个构建的方式。目前指定 python2.7 似乎默认为 32/64 位版本,而它是我需要的另一个版本。
    • 另外请注意,各种 MacPorts python 包的端口名称通常遵循命名方案:pynn-packagename,其中nn 指的是 Python 版本,例如,py27-distribute(适用于 2.7 ) 和 py32-distribute (对于 3.2)。由于历史原因,py-packagename 端口(没有数字)通常是 Python 2.4 版本。
    • @Ned Deily:谢谢 Ned!这清除了在 macport 文档中不容易找到的包的命名约定。
    • @Ned Deily:在错误地为 python 2.4 安装了两个或三个版本之后,我终于意识到了这一点。我认为缺少版本号意味着它在某种程度上是“通用的”,并且适用于所有 python - 初学者的错误!
    • @Paul Patterson:不! sudo port install python27 将安装在 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 看起来您已经安装了默认的 python27。你为什么不看看 /usr/bin/python27 或 /usr/bin/python
    【解决方案2】:

    安装在/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 Python,即/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,则需要分别安装和/或使用正确的。

    如果您的目标只是将wx-python 与 Python 2.7 一起使用,则存在一个关于构建仅 32 位版本的 wx-python 的突出 MacPorts 问题,因为它依赖于已弃用的 OS X Carbon API。似乎有a new MacPorts port 的 Cocoa 版本的 wxWidgets 应该在 64 位模式下工作。您可能想尝试一下:

    sudo port selfupdate
    sudo port install py27-wxpython-devel
    

    【讨论】:

    • 好的,澄清一下:检查过 /opt/local/bin 后,看起来 macports 安装了三个版本的 python:2.4、2.6、2.7。我感兴趣的是 2.7,这是一个通用版本。由于我原来的帖子中提到的问题,这很不幸。看起来我可以做两件事之一:要么忘记macports并按照你的建议做Ned,或者以某种方式安装python2.7 32位的macports版本,从而给我4个macports python。后一种选择是否可能?
    • 应该可以构建一个只有 32 位的 MacPorts python2.7,但确实需要一些努力。您需要确保 MacPorts 已安装所有依赖包的 64 位/32 位通用版本。如果py27-wxpython-devel 端口可以工作会更好,因为wx 显然需要在 OS X 上拥有未来。让我知道这是否有效,如果没有,我们可以尝试构建 32 位- 仅适用于 MacPorts 的版本(我现在没有时间这样做)。此外,如果您正在使用来自 python.org 的仅 32 位 2.7,那么在 Lion(使用 Xcode 4)上会有其他问题。
    • 试图进入 -devel 根目录,但已经遇到问题:'无法安装 wxWidgets-devel,因为安装了冲突的端口:wxWidgets'。已发布有关此问题的单独问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多