sau*_*abh 5 python macos ctypes python-2.5
我正在尝试导入ctypes,我使用的是使用macports安装的Python 2.5.5(在Mac OS X 10.6上).
我收到一条错误,上面写着"ImportError:没有名为_ctypes的模块"(详见下文).据我所知,ctypes应该预先安装python 2.5.有什么建议?
谢谢,Saurabh
错误详情:
$ python
Python 2.5.5 (r255:77872, Nov 30 2010, 00:05:47)
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/\_\_init\_\_.py", line 10, in <module>
from _ctypes import Union, Structure, Array
ImportError: No module named _ctypes
Run Code Online (Sandbox Code Playgroud)
更新:我/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload根据Ned的回复检查了目录.没有_ctypes.so文件,但是那里的两个相关文件是:
-rwxr-xr-x 2 root wheel 136176 Nov 30 00:07 _ctypes_failed.so
-rwxr-xr-x 2 root wheel 26160 Nov 30 00:05 _ctypes_test.so
Run Code Online (Sandbox Code Playgroud)
这是否意味着我需要重新安装ctypes?
更新2:重新安装python 2.5解决了这个问题.不太确定导致原始问题的原因.
可能是文件权限问题。我没有方便的 MacPorts Python 2.5 安装,但是基于 MacPorts Python 2.6,应该有一个类似这样的文件:
$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.5
$ cd ./lib/python2.5/lib-dynload/
$ ls -l _ctypes.so
-rwxr-xr-x 2 root wheel 151536 Oct 8 00:26 _ctypes.so*
Run Code Online (Sandbox Code Playgroud)
ls -l如果没有,请使用上面目录的结果更新您的问题lib-dynload。
更新:根据您的附加信息, 的存在表明在 Python 2.5 的构建和安装过程中_ctypes_failed.so构建失败。_ctypes尝试使用详细模式重新安装它,看看失败是什么:
$ port sudo selfupdate
$ port -v upgrade --force python25
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2938 次 |
| 最近记录: |