当我尝试import regex
时,我收到以下错误。
Traceback (most recent call last):
File "app.py", line 3, in <module>
import regex
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/regex.py", line 391, in <module>
import _regex_core
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/_regex_core.py", line 21, in <module>
import _regex
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/_regex.so, 2): no suitable image found. Did find:
/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/_regex.so: mach-o, but wrong architecture
我通过macports安装了python33,然后通过sudo python setup.py install安装了最新版本的regex(由Matthew Barnett提供)。
我正在使用Mac Os X Leopard(8.5)。我的处理器是Core 2 Duo,它是64位。我该如何解决这个错误?
当我运行lipo -info
时,我得到:
Non-fat file: /opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/_regex.so is architecture: i386
当我运行lipo -info /opt/local/bin/python
时
非胖文件:/ opt / local / bin / python是架构:ppc7400
为什么python ppc7400?
答案 0 :(得分:2)
MacPorts有自己的Python 3.3 regex
库的端口,为什么不使用它而不是自己构建它?
$ sudo port install py33-regex
[...]
$ python3.3
Python 3.3.0 (default, Nov 23 2012, 10:26:01)
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import regex
>>> regex.match(r'[a-z]+', 'abc123').group(0)
'abc'
ppc7400
架构更为人所知的是PowerPC G4,它是您运行的OS X版本支持的架构之一。看起来好像你已经设法安装了Python 3.3的PowerPC版本。 (据推测它是通过Rosetta运行的。)
可能发生这种情况的一种方法是,如果您曾经在PowerPC G4计算机上安装了MacPorts,并且使用迁移助手将安装转移到新的Intel计算机上。请参阅主题的MacPorts FAQ:
MacPorts适用于基于Intel和PowerPC的Mac,但默认情况下,您安装的端口仅针对您当前运行的架构进行编译。这意味着,如果您从PowerPC Mac迁移到Intel,并使用迁移助手将数据复制到新计算机,则应重新安装新计算机上的所有端口,以便为Intel重建它们。请参阅Migration了解如何让事情再次发挥作用。
(另外,您不需要使用lipo
:file
实用程序会告诉您可执行文件或共享库中的体系结构。)