我需要多少次安装macports
在过去的几个月中,我已经开始使用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的问题,我会很感激以下两点澄清:我需要多少次安装macports
- 如果我想我的电脑上的Python的三个版本(比如2.6,2.7和3.2),并希望使用macports为他们每个人安装模块,我是否需要三个单独版本的macports - 每个python一个?
- 如果我对(1)我如何着手安装单独的版本?我已经看过macports网站,但可以找到没有参考的替代版本基于哪个版本的python,你想使用它
帮助非常感谢。
一个Python安装在/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
几乎肯定与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站点包目录中。如果您使用easy_install
或pip
,则需要为每个安装和/或使用正确的一个。
如果您的目标只是在Python 2.7中使用wx-python
,则由于其依赖于不推荐使用的OS X Carbon API,所以存在一个关于构建wx-python
的32位版本的出色MacPorts问题。似乎有一个可以在64位模式下工作的wxWidgets Cocoa版本的a new MacPorts port。你可能想试验它:
sudo port selfupdate
sudo port install py27-wxpython-devel
不,你不需要独立版本的macport,你需要的是不同版本的python。
清除的步骤做:
- 安装MacPorts的。之后你应该可以使用
port
命令。如果您正在使用Mac的安装程序,则应自动在路径中首先安装/opt/local/bin
。 - 安装Python 2.6 -
sudo port install python26
- 安装Python 2.7 -
sudo port install python27
- 您可以使用python26通过
/opt/local/bin/python2.6
您可以使用python27通过
/opt/local/bin/python2.7
如果你想使用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安装使用。
[编辑:基于评论]
我有标准的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
谢谢。我认为我遇到的问题是我有两个版本的python2.7,其中一个是32位,而另一个是通用的。他们是一种指定我想要构建的这两个版本中的哪一个的方式。目前指定python2.7似乎默认为32/64位版本,而它是我需要的另一个。 – 2011-12-16 22:19:23
另外请注意,各种MacPorts python包的端口名称通常遵循命名方案:`pynn-packagename`,其中`nn`指Python版本,例如`py27-distribute`(for 2.7)和` py32-distribute`(for 3.2)。由于历史原因,`py-packagename`端口(不带数字)通常是Python 2.4版本。 – 2011-12-16 22:20:36