2010-12-26 12 views
5

Próbuję zaimportować ctypes i używam Pythona 2.5.5 zainstalowanego za pomocą Macports (na Mac OS X 10.6).import ctypes nie działa na python 2.5

Otrzymuję komunikat o błędzie "ImportError: Brak modułu o nazwie _ctypes" (szczegóły poniżej). Jak rozumiem, ctypes ma zostać preinstalowany dla Pythona 2.5. Jakieś sugestie?

Dzięki, Saurabh

Informacje o błędach:

$ 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 

Update: Sprawdziłem katalog /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload oparciu odpowiedź no Neda. Nie ma pliku _ctypes.so jednak dwa pliki, które są z nią związane są:

-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 

Czy to znaczy, muszę ponownie zainstalować ctypes?

Aktualizacja 2: Ponowna instalacja Pythona 2.5 rozwiązała problem. Nie jestem pewien co spowodowało pierwotny problem.

+0

Wow, nie wiedziałem, że ludzie wciąż używają 2.5. – rook

+0

@Zobacz, że ludzie nadal używają Pythona w wersji 2.4.x. –

+0

@Rook on Red hat, CentOS, inne dystrybucje serwerów nadal często mają 2,5 lub nawet 2,4. Google nie używa niczego po 2.5 (w rzeczywistości, aby rozwinąć App Engine, musisz wybrać 2,5). –

Odpowiedz

1

Może to być problem z uprawnieniami do pliku. Nie mam instalację MacPorts Python 2.5 przydatny, ale w oparciu o DarwinPorts Pythonie 2.6, nie powinno być plikiem coś takiego:

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

Jeśli nie, zaktualizuj pytanie o wynikach ls -l z lib-dynload powyżej.

Aktualizacja: w oparciu o dodatkowe informacje, obecność _ctypes_failed.so wskazuje, że budynek _ctypes nie powiódł się podczas kompilacji i instalacji Pythona 2.5. Spróbuj ponownie zainstalować go w trybie szczegółowym, aby zobaczyć, co to jest awaria:

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

Zainstaluj libffi, a następnie odbuduj język Python.

1

Najnowszy system Mac OS X jest dostarczany z Pythonem 2.6. Spróbuj użyć tego zamiast Macport. Importowanie ctypów działa już w moim systemie.

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