2010-12-26 10 views
5

Sto cercando di importare i ctype e sto usando Python 2.5.5 installato usando macports (su Mac OS X 10.6).importazione di ctypes non funziona su python 2.5

Viene visualizzato un messaggio di errore "ImportError: nessun modulo denominato _ctypes" (vedere i dettagli di seguito). Come ho capito, il ctypes dovrebbe venire preinstallato per Python 2.5. Eventuali suggerimenti?

grazie, Saurabh

Dettagli errore:

$ 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 

Aggiornamento: Ho controllato la directory /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload basata risposta non di Ned. Non v'è alcun file _ctypes.so, tuttavia i due file correlati che sono là sono:

-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 

Questo significa che ho bisogno di reinstallare ctypes?

Aggiornamento 2: la reinstallazione di python 2.5 ha risolto il problema. Non sono sicuro di cosa abbia causato il problema originale.

+0

Wow io sono non sapevo la gente ancora usati 2.5. – rook

+0

@Rook le persone usano ancora Python 2.4.x, anche. –

+0

@Rook on Red hat, CentOS, alcune altre distribuzioni server è ancora comune avere 2.5 o addirittura 2.4. Google non utilizza nulla oltre il 2.5 (infatti, per sviluppare App Engine devi indirizzare 2.5). –

risposta

1

Potrebbe trattarsi di un problema di autorizzazione file. Non ho un 2,5 installazione MacPorts Python a portata di mano, ma, sulla base di un MacPorts Python 2.6, ci dovrebbe essere un file di qualcosa di simile:

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

In caso contrario, aggiornare la tua domanda con i risultati di una ls -l del Directory lib-dynload qui sopra.

Aggiornamento: in base alle informazioni aggiuntive, la presenza di _ctypes_failed.so indica che l'edificio di non è riuscito durante la creazione e l'installazione di Python 2.5. Provare a reinstallare con modalità dettagliata per vedere ciò che il fallimento è:

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

Installare libffi, quindi ricostruire Python.

1

L'ultimo Mac OS X viene fornito con Python 2.6. Prova a usare quello invece di macport. L'importazione di ctypes funziona già sul mio 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 
>>> 
Problemi correlati