在OSX 10.6上Python _ctypes导入错误

3

我对Python开发非常陌生,在OSX上运行我的应用程序时出现了问题。

这个项目中使用的技术

  • python 2.6
  • Django
  • Google App Engine
  • RPX (OpenID)

在我的Windows应用程序上加载网站时没有任何问题,但是在尝试在OSX 10.6上运行同一个应用程序时,出现以下问题:


在/rpx/rpx/login/处出现ImportError

No module named _ctypes

错误发生的位置在这里:

/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/init.py in

"""在Python中创建和操作C数据类型""" import os as _os, sys as _sys version = "1.1.0" from _ctypes import Union, Structure, Array


有什么想法吗?谢谢!

4个回答

6

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问题跟踪器中提出:http://code.google.com/p/googleappengine/issues/detail?id=985

那里的最后一条评论建议将您的GAE首选项更改为使用Python 2.5(/usr/bin/python2.5),作为解决您的OS X开发机器上的问题的可能方法。


谢谢!我通过MacPorts安装了Python 2.5,然后编辑了/usr/local/google_appengine/dev_appserver.py的第一行为#!/usr/bin/python2.5。 - Carl
1
如果这个失败了(就像我一样),很可能会用"/Library/Frameworks/Python.framework/Versions/2.5/bin/python"起作用。 - Riley

3
我没有足够的声望来发表评论,所以我会把它作为一篇文章。 被接受的答案是正确的,你需要做的就是在GAE首选项中设置Python路径为/usr/bin/python2.5。
不需要通过macports或官方Python网站下载Python 2.5。
Python 2.5仍然安装在OSX 10.6上,只是不是默认的Python解释器。因此,您需要明确告诉GAE使用2.5版本。
顺便说一下,我正在使用GAE Launcher 1.4.1。

2

我在我的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。

via vitor...@gmail.com


0
我能想到的唯一可能是它可能不在你的路径上。虽然这似乎不太可能,但我还是会检查一下。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接