web-dev-qa-db-ja.com

Pycryptoインストールの致命的なエラー:gmp.hファイルが見つかりません

似たような問題を抱えている方もいらっしゃるようですが、よく調べてみたところ、特定のアーキテクチャで動作するソリューションを見つけることができませんでした。 Pycrypto(Fabricの子会社として)をインストールしようとしていますが、役に立ちません。

私はMac 10.8.2を実行しています、python 2.7.3、およびXCode 4.6-pipまたはeasy_installを使用してインストールします(私は両方を試しました)。 XCodeのバージョンに関する問題か、ライブラリが原因である可能性があります。XCodeのコマンドラインツールがインストールされており、.cshrcファイルにsetenv ARCHFLAGS "-Arch i386 -Arch x86_64"を配置しようとしました。また、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

ファブリックを呼び出そうとしたときのエラー:

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
36
cosmosis

最終的に、私の問題の根本は、FabricとPycryptoのバージョン間の非互換性にあることに気付きました。 Fabricのバージョンを1.2.6にダウングレードすると、上記のエラーは発生しなくなりました。次に、 tutorial をジャンプポイントとして使用しました。しかし、チュートリアルと以前のバージョンのファブリックにもかかわらず、PyCrypto >= 2.1, !=2.4エラーが発生しました。私は最終的にPycrypto 2.2をソースからインストールしました(pip -Iv install pycrypto==2.2 per this を指定した場合でもpipはv。2.0.1のみをインストールするため、v。2.6はgmp.hエラー)。最後に、すべてが機能しました。

1
cosmosis

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
96
AKX

次のコマンドを使用して、PyCryptoをインストールすることができました。

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

MacPortsを介してGMPをインストールし、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)
5
flyingfred0

Pycrptoがgmp.hを含むCファイルをコンパイルする必要があるため、gmppylibをリンクするだけでは役に立ちません。 gmp.hを含むGMPライブラリがインストールされている必要があります。 Mac OSにGMPをインストールする必要があるようです。次の2つのリンクが参考になります。

2
Kun Ling

これは私のために働いた修正です:

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

インストールヘッダーインクルードパス(-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 -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10 .7.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include -I/Applications/Xcode.app/Contents /Developer/Platforms/MacOSX.platform/Developer/SDKs/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/Versions/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'ファイルが見つかりません

0
josephmisiti