2012-07-09 52 views
2

我在Mac OSX獅子編譯和安裝pycrypto 2.6與Python 3.2,但是當我嘗試運行命令在OS X上的Python 3.2安裝PyCrypto 10.7

import Crypto.Cipher.AES 

我得到這個問題

Traceback (most recent call last): 
File "/Users/DaZzz/Documents/Python Workspace/Cryptography Coursera/W2PA.py", line 8, in <module> 
import Crypto.Cipher.AES 
File "/Library/Python/2.7/site-packages/Crypto/Cipher/AES.py", line 50, in <module> 
from Crypto.Cipher import _AES 
ImportError: dlopen(/Library/Python/2.7/site-packages/Crypto/Cipher/_AES.so, 2): Symbol not found: _PyInt_FromLong 
Referenced from: /Library/Python/2.7/site-packages/Crypto/Cipher/_AES.so 
Expected in: flat namespace 
in /Library/Python/2.7/site-packages/Crypto/Cipher/_AES.so 

順便說一下,我使用安裝了PyDev的eclipse。我也試圖在怠速運轉,但我得到了以下錯誤:

Traceback (most recent call last): 
 File "<pyshell#1>", line 1, in <module> 
   import Crypto.Cipher.AES 
 File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/Crypto/Cipher/AES.py", line 50, in <module> 
   from Crypto.Cipher import _AES 
ImportError: cannot import name _AES 

應當強調的是,在怠速運轉我複製的目錄與加密到Python路徑。

我在做什麼錯?

回答

0

查看消息中的/Library/Python/2.7?看來你實際上在這裏運行Python 2.7。你需要告訴PyDev使用Python 3.2。你確定你使用了Python 3.2的IDLE版本嗎?每個版本的Python都有獨立的IDLE。嘗試從命令行輸入idle3.2,或在Finder中單擊/Applications/Python 3.2/IDLE.app

更新:適用於使用python.org 64位/ 32位Python 3.2.3和Xcode 4.3(您可能需要爲/Developer創建符號鏈接以解決Xcode 4.3 SDK位置的更改)。

# for Xcode 4.3+ only 
$ [ ! -e /Developer ] && sudo ln -s Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer 


$ tar xf ./pycrypto-2.6.tar.gz 
$ cd ./pycrypto-2.6 
$ python3.2 setup.py install 
$ cd 
$ python3.2 
Python 3.2.3 (v3.2.3:3d0686d90f55, Apr 10 2012, 11:25:50) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import Crypto.Cipher.AES 
>>> Crypto.Cipher.AES.__file__ 
'/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/Crypto/Cipher/AES.py' 
+0

我修復了帖子。是,我確定。我使用Python 3.2。其他代碼,如'print(「Hello world」)'正常工作。 – DaZzz 2012-07-09 16:27:42

+0

看起來pycrypto正在嘗試使用Python 2.7。檢查你的項目的設置。 – 2012-07-09 17:23:31

+0

'print(「Hello world」)'在Python 2.7以及Python 3中起作用。可以肯定的,試一下'import sys;打印(內容sys.version)'。 – 2012-07-09 17:26:05