python - 在 OS X 10.7 上为 Python 3.2 安装 PyCrypto

标签 python macos python-3.x pycrypto

我使用 Python 3.2 在 Mac OSX Lion 上编译并安装了 pycrypto 2.6,但是当我尝试运行命令时

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。我也尝试在 IDLE 中运行它,但出现以下错误:

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

应该强调的是,为了在 IDLE 中运行它,我将带有 Crypto 的目录复制到 python 路径中。

我做错了什么?

最佳答案

看到消息中的/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-bit Python 3.2.3 和 Xcode 4.3(您可能需要为 /Developer 创建一个符号链接(symbolic link)来解决更改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'

关于python - 在 OS X 10.7 上为 Python 3.2 安装 PyCrypto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398928/

相关文章:

c++ - 从 OS X 终端编译 Qt 示例时出现问题

c++ - 架构 x86_64 的 undefined symbol : "Shape::get_area()", 从 : votable for shape in shape. o 引用

python - EbaySDK Python GetFeedback (ItemID) 仅返回 100 个值

python - 通过总结 Python 中现有列表来创建新列表

python - 按年份和季度对日期列表进行排序

python - 这个查询有什么问题?

Python:带有列表列表的 Argparse

python - Numpy Linalg 规范行为异常(错误)

python - 如何让 XKCD 字体在 matplotlib 中工作

c++ - CUDA cuFFT 架构 x86_64 的 undefined symbol