在过去的几个月里,我开始使用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的问题,我很欣赏以下两点的澄清:
非常感谢。
答案 0 :(得分:3)
不,你不需要单独版本的macport,你需要的是python的单独版本。
明确步骤:
port
命令。如果您使用的是Mac安装程序,则应自动在路径中首先/opt/local/bin
。sudo port install python26
sudo port install python27
/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安装的软件包将放在它的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
处的说明
答案 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_install
或pip
,则需要为每个安装和/或使用正确的一个。
如果你的目标只是在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