2014-01-14 5 views
3

Пытается установить и использовать pycrypto. Во время установки я не получаю никаких ошибок, поэтому я не могу устранить неполадки.PyCrypto не работает в OSX Mavericks

Я проверил «тест» и пошел за ошибками, но не смог найти исправления.

FYI, у меня установлены инструменты XCode и Commandline.

mac:pycrypto-2.6.1 rajivvishwa$ export ARCHFLAGS='-arch i386 -arch x86_64' 
mac:pycrypto-2.6.1 rajivvishwa$ sudo python setup.py build 
running build 
running build_py 
running build_ext 
running build_configure 
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath. 
mac:pycrypto-2.6.1 rajivvishwa$ sudo python setup.py install 
running install 
running build 
running build_py 
running build_ext 
running build_configure 
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath. 
running install_lib 
running install_egg_info 
Removing /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pycrypto-2.6.1-py2.6.egg-info 
Writing /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pycrypto-2.6.1-py2.6.egg-info 

mac:pycrypto-2.6.1 rajivvishwa$ sudo python setup.py test 
running test 
.......................................................................................................................................................................................................... SelfTest: You can ignore the RandomPool_DeprecationWarning that follows. 
build/lib.macosx-10.9-intel-2.6/Crypto/Util/randpool.py:40: RandomPool_DeprecationWarning: This application uses RandomPool, which is BROKEN in older releases. See http://www.pycrypto.org/randpool-broken 
    RandomPool_DeprecationWarning) 
..........E................... 
====================================================================== 
ERROR: Test that mpzToLongObj and longObjToMPZ (internal functions) roundtrip negative numbers correctly. 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "build/lib.macosx-10.9-intel-2.6/Crypto/SelfTest/Util/test_number.py", line 283, in test_negative_number_roundtrip_mpzToLongObj_longObjToMPZ 
    k = number._fastmath.rsa_construct(n, e) 
AttributeError: 'NoneType' object has no attribute 'rsa_construct' 

---------------------------------------------------------------------- 
Ran 1033 tests in 150.196s 

FAILED (errors=1) 
Traceback (most recent call last): 
    File "setup.py", line 456, in <module> 
    core.setup(**kw) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/core.py", line 152, in setup 
    dist.run_commands() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 975, in run_commands 
    self.run_command(cmd) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 995, in run_command 
    cmd_obj.run() 
    File "setup.py", line 336, in run 
    SelfTest.run(module=moduleObj, verbosity=self.verbose, stream=sys.stdout, config=self.config) 
    File "build/lib.macosx-10.9-intel-2.6/Crypto/SelfTest/__init__.py", line 74, in run 
    raise SelfTestError("Self-test failed", result) 
Crypto.SelfTest.SelfTestError: ('Self-test failed', <unittest._TextTestResult run=1033 errors=1 failures=0>) 

mac:pycrypto-2.6.1 rajivvishwa$ python 
Python 2.6.8 (unknown, Aug 25 2013, 00:04:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import Crypto 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named Crypto 

ответ

3

при запуске питона через MacPorts, попробуйте

sudo port install py27-crypto 

затем импортировать Crypto должен работать

+0

Я пробовал это, и похоже, что pycrypto теперь установлен в python2.7, а не в моем python по умолчанию. Можно ли установить в python по умолчанию с помощью macports? – rajivvishwa

+0

нет, вы не можете использовать macports, macports - для альтернативных питонов, для python по умолчанию вы должны попробовать заварить установку. – bistaumanga

+0

пиво сломано для меня из-за обновления mavericks. http://stackoverflow.com/questions/19635804. – rajivvishwa

2

Если вы хотите установить PyCrypto на последней OSX затем установите «лязг» в качестве компилятора C, что configure будет использовать. Это делается с помощью переменной окружения CC.

Способ отладки это в virtualenv:

sudo easy_install virtualenv==1.10.1 
virtualenv venv 
export CC=clang 
venv/bin/pip install --no-clean pycrypto 
cat venv/build/pycrypto/config.log 
0

Это выглядит как предпочтения случае нечувствительности в Mac файловых систем. Linux чувствителен к регистру, и я предполагаю, что владельцы пакетов использовали Linux для создания пакета.

Сначала я установил криптографические пакеты (в качестве крайнего средства использовали sudo).

sudo pip install pycrypto 

pip install crypto 

Затем просто переименуйте имя в нижнем регистре в верхний регистр.

В /path/to/venv/lib/python2.7/site-packages, переименовать crypto в Crypto.

Смежные вопросы