Подтвердить что ты не робот

Pycrypto устанавливает фатальную ошибку: gmp.h файл не найден

Похоже, что есть несколько людей, у которых была аналогичная проблема, однако после многих поисков я не смог найти решение, которое работает с моей конкретной архитектурой. Я пытаюсь установить Pycrypto (как дочернюю структуру Fabric) безрезультатно.

Я запускаю Mac 10.8.2, python 2.7.3 через Homebrew и XCode 4.6 - устанавливаю с помощью pip или easy_install (я пробовал оба). Из того, что я могу сказать, проблема может быть связана с моей версией XCode или из-за моих библиотек. Утилиты командной строки для XCode были установлены, и я попытался разместить setenv ARCHFLAGS "-arch i386 -arch x86_64" в моем файле .cshrc. Я также пробовал ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer. Что касается библиотек, я попытался связать их через ln -s /usr/local/lib/libgmp.dylib /usr/lib/libgmp.dylib - но это также не сработало.

Ошибка всегда одна и та же (см. ниже) независимо от того, какой угол я пытаюсь выполнить. Любая помощь будет оценена.

/usr/local/share/python% pip install pycrypto
Downloading/unpacking pycrypto
  Running setup.py egg_info for package pycrypto

Installing collected packages: pycrypto
  Running setup.py install for pycrypto
    building 'Crypto.PublicKey._fastmath' extension
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -pipe -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict-prototypes -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.8-intel-2.7/src/_fastmath.o
src/_fastmath.c:36:11: fatal error: 'gmp.h' file not found
# include <gmp.h>
          ^
1 error generated.
error: command '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang' failed with exit status 1
Complete output from command /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-Xb7nGV-record/install-record.txt --single-version-externally-managed:
running install

running build

running build_py

running build_ext

running build_configure

building 'Crypto.PublicKey._fastmath' extension

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -pipe -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict-prototypes -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.8-intel-2.7/src/_fastmath.o

src/_fastmath.c:36:11: fatal error: 'gmp.h' file not found

# include <gmp.h>

      ^

1 error generated.

error: command '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain    /usr/bin/clang' failed with exit status 1

----------------------------------------
Command /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-Xb7nGV-record/install-record.txt --single-version-externally-managed failed with error code 1 in /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto
Storing complete log in /Users/me/.pip/pip.log

Ошибка при попытке вызова Fabric:

Traceback (most recent call last):
  File "/usr/local/share/python/fab", line 5, in <module>
from pkg_resources import load_entry_point
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 2815, in <module>
working_set.require(__requires__)
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 690, in require
needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 588, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pycrypto>=2.1,!=2.4
4b9b3361

Ответ 1

Наконец я понял, что корень моей проблемы был в несовместимости между версиями Fabric и Pycrypto. Как только я понизил свою версию Fabric до 1.2.6, я больше не получил ошибок выше. Затем я использовал учебник как точку перехода. Однако, несмотря на учебное пособие и более старую версию Fabric, я все еще получил ошибку PyCrypto >= 2.1, !=2.4. В итоге я установил Pycrypto 2.2 из источника (поскольку, по-видимому, pip установит v. 2.0.1 даже при обозначении pip -Iv install pycrypto==2.2 per this и v. 2.6, gmp.h). Наконец, все сработало.

Ответ 2

Если вы используете Homebrew, это должно сработать:

brew install gmp
env "CFLAGS=-I/usr/local/include -L/usr/local/lib" pip install pycrypto

Использование env заставит его работать только для этого вызова. Если вам нужно установить pycrypto позже в этом сеансе, вместо этого экспортируйте переменную.

export "CFLAGS=-I/usr/local/include -L/usr/local/lib" 
pip install pycrypto

Ответ 3

Мне удалось установить PyCrypto с помощью следующей команды:

CFLAGS=-I/opt/local/include pip install pycrypto

У меня есть GMP, установленный через MacPorts, работающий на OSX 10.8.3 с Python 2.7.2 с python.org. В этом случае я устанавливаю в virtualenv.

Я получаю следующее предупреждение, когда PyCrypto используется, но он все еще работает:

/Users/me/.virtualenvs/blah/lib/python2.7/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)

Ответ 4

Простое соединение gmppylib не полезно, потому что pycrpto необходимо скомпилировать некоторые файлы C, которые будут включать gmp.h. У вас должна быть установлена ​​библиотека GMP, которая будет содержать gmp.h. Кажется, вам нужно установить GMP на Mac OS. Следующие две ссылки должны быть полезны для вас.

Ответ 5

Вот исправление, которое сработало для меня:

https://medium.com/software-bugs/84afab886a1e

Вам нужно создать символическую ссылку на основе заголовка установки include path (-I), но сбой. Пример:

Здание Расширение Crypto.PublicKey._fastmath

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -march = native -mmacosx-version-min = 10.7 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -система/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDK/MacOSX10.7.sdk/usr/include -I/Приложения/Xcode.app/Содержание/Разработчик/Платформы/MacOSX.platform/Разработчик/SDK/MacOSX10.7.sdk/usr/include -I/Приложения/Xcode. Приложение/Содержание/Разработчик/Платформы/MacOSX.platform/Разработчик/SDK/MacOSX10.7.sdk/usr/X11/include -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict- prototypes -std = c99 -O3 -fomit-frame-pointer -Isrc/* -I/usr/include/- * I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Версии/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.7-x86_64-2.7/src/_fastmath.o

src/_fastmath.c: 36: 11: фатальная ошибка: файл gmp.h не найден