2010-12-26 27 views
5

Tôi đang cố gắng nhập khẩu ctypes và tôi đang sử dụng Python 2.5.5 được cài đặt bằng macports (trên Mac OS X 10.6).nhập khẩu ctypes không hoạt động trên trăn 2.5

Tôi nhận được thông báo lỗi "ImportError: No module named _ctypes" (xem chi tiết bên dưới). Theo tôi hiểu nó ctypes là nghĩa vụ phải đến cài đặt sẵn cho python 2,5. Bất kỳ đề xuất?

cảm ơn, Saurabh

Lỗi chi tiết:

$ 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 

Cập nhật: Tôi đã kiểm tra thư mục /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload dựa trả lời không của Ned. Không có tệp _ctypes.so, tuy nhiên hai tệp có liên quan có:

-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 

Điều này có nghĩa là tôi cần phải cài đặt lại ctypes?

Cập nhật 2: Cài đặt lại python 2.5 đã giải quyết được sự cố. Không hoàn toàn chắc chắn những gì gây ra vấn đề ban đầu.

+0

Tôi không biết mọi người vẫn sử dụng 2.5. – rook

+0

@Rook mọi người vẫn sử dụng Python 2.4.x, quá. –

+0

@Rook trên Red hat, CentOS, một số distro máy chủ khác nó vẫn còn phổ biến để có 2,5 hoặc thậm chí 2,4. Google không sử dụng bất kỳ thứ gì trong quá khứ 2.5 (trên thực tế, để phát triển App Engine, bạn phải nhắm mục tiêu 2.5). –

Trả lời

1

Đây có thể là sự cố về quyền đối với tệp. Tôi không có một 2,5 cài đặt MacPorts Python tiện dụng nhưng, dựa trên một MacPorts Python 2.6, cần có một cái gì đó tập tin như thế này:

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

Nếu không, cập nhật câu hỏi của bạn với kết quả của một ls -l của lib-dynload thư mục ở trên.

Cập nhật: dựa trên thông tin bổ sung của bạn, sự hiện diện của _ctypes_failed.so cho biết rằng việc xây dựng _ctypes không thành công trong quá trình xây dựng và cài đặt Python 2.5. Hãy thử cài đặt lại chế độ này với chế độ tiết lộ để xem thất bại là gì:

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

Cài đặt libffi, sau đó tạo lại Python.

1

Phiên bản Mac OS X mới nhất đi kèm với Python 2.6. Hãy thử sử dụng thay vì macports. Nhập khẩu ctypes hoạt động đã có trên hệ thống của tôi.

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 
>>> 
Các vấn đề liên quan