Python _ctypes 在OSX 10.6上的导入错误
我刚开始学习Python开发,现在在我的一个应用程序上遇到问题,系统是OSX。
这个项目使用的技术有:
- python 2.6
- django
- google app engine
- rpx (openid)
在我的Windows应用上打开这个网站没有问题,但在OSX 10.6上运行同样的应用时,我遇到了以下问题:
在/rpx/rpx/login/出现了导入错误(ImportError)
没有名为_ctypes的模块
错误发生在这里:
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/init.py 中
#"""在Python中创建和操作C数据类型"""
import os as _os, sys as _sys
version = "1.1.0"from _ctypes import Union, Structure, Array
有什么建议吗?谢谢!
4 个回答
我在我的Mac OS X Snow Leopard 10.6.3上使用的是python 2.6.1。
按照下面的步骤来解决这个问题:
1) 下载并安装python 2.5.2:http://www.python.org/download/releases/2.5.2/
2) 运行GoogleAppEngineLauncher.app
3) 打开设置 --> 然后把“Python路径”改成“/usr/local/bin/python2.5”
其实没有必要使用python 2.6.1,因为GAE(谷歌应用引擎)是用2.5的。
来自 vitor...@gmail.com
因为我没有足够的权限评论,所以我就发个帖子吧。
被接受的答案是对的,你只需要在GAE的设置里把Python路径设置为/usr/bin/python2.5就可以了。
你不需要通过macports或者官方Python网站去下载Python 2.5。
其实在OSX 10.6里,Python 2.5是已经安装好的,只是它不是默认的Python解释器。所以你需要明确告诉GAE使用2.5版本。
顺便说一下,我用的是GAE Launcher 1.4.1。
OS X 10.6 自带的 Python 2.6 默认包含了 ctypes。你甚至可以在错误报告中看到它的一部分。所以如果安装出现问题,那只是 ctypes 的一部分出了问题。这说明可能是某种原因导致它损坏了,或者是其他东西干扰了 ctypes 的内部工作。
Google App Engine 很可能就是造成这种干扰的原因。ctypes 本身在 Google App Engine 上不可用。
看起来这可能是 Python 2.6、OS X 和 Google App Engine 之间的特定互动问题。如果你真的把应用上传到 GAE 进行实际部署,可能就不会遇到同样的问题。
这个问题在 GAE 的问题追踪器上被提出来了,链接在这里:http://code.google.com/p/googleappengine/issues/detail?id=985
那里的最后一条评论建议你可以尝试把 GAE 的设置改成使用 Python 2.5 (/usr/bin/python2.5),这可能会解决你在 OS X 开发机器上遇到的问题。