2010-12-26 15 views
5

Estoy tratando de importar ctypes, y estoy usando Python 2.5.5 instalado usando macports (en Mac OS X 10.6).ctypes import not working on python 2.5

Me sale un error que dice "ImportError: Ningún módulo llamado _ctypes" (ver detalles a continuación). Según tengo entendido, se supone que ctypes viene preinstalado para Python 2.5. ¿Alguna sugerencia?

gracias, Saurabh

detalles del error:

$ 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 

Actualización: he comprobado el directorio /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload basada respuesta ninguna de Ned. No hay ningún archivo _ctypes.so, sin embargo los dos archivos relacionados que están allí son:

-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 

¿Quiere decir esto que necesito para volver a instalar ctypes?

Actualización 2: la reinstalación de python 2.5 resolvió el problema. No estoy seguro de qué causó el problema original.

+0

Wow, estoy, no sabía que la gente aún utilizaba 2.5. – rook

+0

@La gente de Rook todavía usa Python 2.4.x también. –

+0

@Rook on Red hat, CentOS, algunas otras distribuciones de servidor, todavía es común tener 2.5 o incluso 2.4. Google no usa nada más allá de 2.5 (de hecho, para desarrollar App Engine debe apuntar a 2.5). –

Respuesta

1

Puede ser un problema de permiso de archivo. No tengo una instalación de MacPorts Python 2.5 conveniente, pero, en base a un DarwinPorts Python 2.6, debe haber un archivo algo como esto:

$ 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* 

Si no es así, actualizar su pregunta con los resultados de una ls -l de la lib-dynload directorio de arriba.

Actualización: según su información adicional, la presencia de _ctypes_failed.so indica que el edificio de _ctypes falló durante la compilación e instalación de Python 2.5. Intente reinstalarlo con el modo detallado para ver cuál es la falla:

$ port sudo selfupdate 
$ port -v upgrade --force python25 
0

Instale libffi, luego reconstruya Python.

1

El último Mac OS X se envía con Python 2.6. Intenta usar eso en lugar de macports. Importar ctypes ya funciona en mi sistema.

Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ctypes 
>>>