Python 2.7(PythonBrewスクリプト経由でインストール))でCentOS 6.4サーバーを実行しています
「yum install gmp」でgmpをインストールし、「yum install python-devel」でpython-develをインストールしました(ただし、python 2.6シリーズ用)
私は私のサーバーにpycryptoをインストールしようとしていますが、それは私に与えています
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
Gipインストールをpipに「認識」させる方法はありますか?
ありがとう
Pipを使用してCentos 6.4にシステムレベルでFabricをインストールしようとすると、上記のエラーが発生しました。 (ファブリックはpycryptoを使用します)。
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
これは私がそれを機能させた方法です:
yum install gmp-devel
Sudo pip uninstall ecdsa pycrypto paramiko fabric
# clear out the pip build dirs
rm -rf /tmp/pip-*
# make sure the directory containing libgmp.so.3 is on the python path
export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PATH"
pip install fabric
これは、CentOSサーバーで作成したばかりのステップバイステップです(ルートではないことを前提としています)。
LIBGMP INSTALL
まず、次のように、ホームディレクトリのどこかにlibgmpをセットアップしてインストールします。
./configure prefix=$HOME
make
make install prefix=$HOME
これにより、〜/ lib、〜/ include、および〜/ shareディレクトリが作成されます(まだ存在しない場合)。
次に、.bashrcに次の行を追加します。
export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH
「。〜/ .bashrc」を実行して、変更を強制します。
PYCRYPTO BUILD&INSTALL
インストールプロセスを手動で処理する必要があります。まず、次のようにpycryptoをダウンロードします。
ソースを保存するディレクトリに移動します。
cd〜/ src
pycryptoソースアーカイブをダウンロードします。
curl -o pycrypto.tar.gz " https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.tar.gz#md5=88dad0a270d1fe83a39e0467a66a22bb "
uncompress + untarアーカイブ:
gunzip pycrypto.tar.gz tar xvf pycrypto.tar
次に、構成を「少し」チートする必要があります。
cd pycrypto-26
./configure --includedir=$HOME/include
ファイルcd src/config.hを編集し、定義の値を修正します。
#define HAVE_DECL_MPZ_POWM 1ではなく0
#define HAVE_DECL_MPZ_POWM_SEC 0ではなく1
#define HAVE_LIBGMP 0ではなく1
次に、キーワード「_fastmath」を検索してsetup.pyファイルを編集し、Extension()宣言が以下のようになるようにします。
Extension("Crypto.PublicKey._fastmath",
include_dirs=['/home/<yourhome>/include','src/','/usr/include/'],
library_dirs=['/home/<yourhome>/lib'],
libraries=['gmp'],
sources=["src/_fastmath.c"]),
最後に、pycryptoをビルドします:
python setup.py build
トレースのどこかに次の行が表示されます。
...
building 'Crypto.PublicKey._fastmath' extension
...
その後、「python setup.py install」を実行するか、私のようにpipを使用することをお勧めします。
cd ..
pip install ./pycrypto-2.6
次に、pythonから次の行を実行してもエラーが発生しないはずです。
>>> from Crypto.PublicKey import _fastmath
>>> import Crypto.Random
>>> _fastmath.HAVE_DECL_MPZ_POWM_SEC
1
おそらくgmp-develもインストールする必要があります。これにより、pycryptoにlibgmpを使用して構築する必要があるヘッダーが提供されます。
Ubuntuでは、libgmp10のみがインストールされていました。 pycryptoをインストールしようとすると、同じ警告が表示されます。 Ubuntuパッケージlibgmp-devをインストールすると、警告は消え、ビルドスクリプトは_fastmath拡張を使用していることを示しました。
_fastmathを使用せずにpycryptoを既にインストールしている場合は、-Iフラグを付けて再インストールできます。
Sudo pip install -I pycrypto
いくつかあると確信しているように、ここ数年でこれに出くわした人だけのために。次のコマンドを実行して、Debian Jessieインストールでこの問題を簡単に修正できました。
$ Sudo apt-get install python-dev
その後、インストールを再試行してください。私の場合、私は次のコマンドでpipを介してansibleをインストールしようとしました。 同様のシナリオでこの投稿に出会える人も
$ Sudo pip install ansible
出力は次のようになります。
Successfully installed pycrypto
Cleaning up...
これが誰かの助けになることを願っています! -ジャスティン
これをビルドするためのC++ライブラリがありません。 VS 2017のインストール https://visualstudio.Microsoft.com/downloads/#build-tools-for-visual-studio-2017