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('rn', '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('rn', '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

5 ответов


Если вы используете 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

я смог получить 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)

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


Я, наконец, понял, что корень моей проблемы был в несовместимости между версиями 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 этой и v. 2.6 привели к gmp.h ошибка). Наконец все сработало.


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

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

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

построение ' Crypto.Открытый ключ.Расширение _fastmath'

/Применения/Xcode.app / содержание / разработчик / Toolchains / XcodeDefault.xctoolchain / usr/bin / clang-fno-строгое сглаживание-fno-общее-динамическое-труба-март=родной - mmacosx-версия-min=10.7-isysroot / приложения / Xcode.app / содержание / разработчик / платформы / MacOSX.платформа / разработчик / SDKs / MacOSX10.7.sdk-isystem / приложения / Xcode.app / содержание / разработчик / платформы / MacOSX.платформа / разработчик / SDKs / MacOSX10.7.sdk / usr / include-I / Applications / Xcode.app / содержание / разработчик / платформы / MacOSX.платформа / разработчик / SDKs / MacOSX10.7.sdk / usr / include-I / Applications / Xcode.app / содержание / разработчик / платформы / MacOSX.платформа / разработчик / SDKs / MacOSX10.7.СДК в/usr/Х11/включать -Кто-неиспользованный-значение -кто-пусто-тело -Qunused-аргументы -fwrapv -стены -устриц.-прототипы -с std=С99-О3 -fomit-рамка-указатель -музыки/ * - I / usr / include/ - * I/usr/local/Cellar/python/2.7.3/фреймворки / 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-файл не найден