WindowsにPyCryptoをインストールするにはどうすればよいですか?


139

他のすべてのgoogleソースとSOスレッドを読みましたが、何も機能しません。

Python 2.7.3 32bitにインストールされていWindows 7 64bitます。PyCryptoをダウンロードして展開し、インストールしようとすると、"Unable to find vcvarsall.bat".

そこで、MinGWをインストールし、選択したコンパイラーとしてインストール行に追加します。しかし、私はエラーが出ます"RuntimeError: chmod error".

どうすればこれを回避できますか?同じ結果が得られるpipを使用してみました。ビルド済みのPyCrypto 2.3バイナリを見つけてインストールしましたが、システム上で見つかりません(動作していません)。

何か案は?



16
あなただけしたい場合は、それをインストールし、単にインストーラバイナリPyCryptoをダウンロード
bobobobo

12
それは非常に大胆なアドバイスであり、海外の未知のサーバーからバイナリ暗号化パッケージをインストールする...
Darren Ringer

最終的に選択した回答で結果を出しましたが、結局自分でパッケージをビルドしてなんとかしました(確かに私は何かの署名を確認するのに迷惑をかけなかったので、本当に、本当に安全なのでしょうか?)パラノイアと無関心さておき、しかし、次のリンクはすべて私の最も困難な問題を解決し、プロセスにスナップをした:blog.victorjabur.com/2011/06/05/...
ダレンリンガー

4
PyCryptoは死んでいます。著者はしばらくそれを落としました。github.com/dlitz/pycrypto/issues/173
Smit Johnth、2016年

回答:


184

Python.orgによって配布されているVisual Studioバイナリと互換性のあるC / C ++開発環境をまだインストールしていない場合は、純粋なPythonパッケージまたはWindowsバイナリが利用可能なパッケージのみをインストールするようにしてください。

さいわい、Windowsで利用できるPyCryptoバイナリがあります。http://www.voidspace.org.uk/python/modules.shtml#pycrypto

更新:
@Udiが以下のコメントで示唆しているように、次のコマンドもインストールpycryptoされvirtualenv、同様に使用できます。

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

このリストからセットアップに関連するリンクを選択することに注意してください

Python 3.5のビルドを探している場合は、Python 3.5のPyCryptoを参照してください。


28
あなたは、URLからバイナリをインストールするためにeasy_installをを使用することができますeasy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe
のUdi

インストーラvoidspace.org.uk/python/modules.shtml#pycryptoは私のために働きました。ヒント:64ビットインストーラーを誤って実行したが、32ビットバージョンのPython 2.7を使用している場合、インストーラーは失敗し、「Pythonバージョン2.7が必要ですが、レジストリに見つかりませんでした」という警告が表示されます。
スティーブサポルタ2014

1
GUIインストーラーが失敗しました。easy_installは成功しました
pscheit 14

@Udiなぜexeにeasy_installが必要なのですか?
Smit Johnth、2014

@SmitJohnth easy_installは、パッケージをvirtualenv(存在する場合)にインストールし、すべてのグラフィカルな対話を抑制します(自動化または時間を節約するため)。
Udi、2014

32

マイクロソフトは最近、スタンドアロンの専用Microsoft Visual C ++コンパイラfor Python 2.7をリリースしました。Python 2.7を使用している場合は、そのコンパイラとSetuptools 6.0以降をインストールするだけで、C拡張機能を備えたほとんどのパッケージがすぐにコンパイルされます。


うわー、なんて面白い。しかし、まだ84 Mbです。そして、もう少し遅れて、ホイールについての私の答えを見てください。
Smit Johnth、2014

1
ホイールがあっても、ソースから何かをビルドしたり、ホイールのないモジュールを使用したりする場合は、VS 2008やvcvarsall.batに打ち勝つよりもはるかに優れたオプションです。MSVC for Pythonは「長期的」には存在しないかもしれませんが、現時点では非常に便利です。
GrandOpener 2015

1
それでも、私が見つけた最も簡単なソリューションです。私は、ランダムに(私にとって)Webサイトから事前に構築されたバイナリに依存する必要があることを常に嫌っていました。
Myk Willis

28

何年にもわたって、Pythonはwheel、単純なコンパイラーがなくてもWindowsにバイナリー拡張をインストールできるというバイナリー配布についてようやく合意しましたpip install packagename。ある人気のパッケージのリストその状態では。Pycryptoはまだありませんが、lxml、PySide、Scrapyなどがあります。

2015年11月編集pip uninstall pycryptopip install pycryptodomepycrypto新しい機能を備えたフォークで、ホイールをサポートしています。これはに置き換わるpycryptoので、既存のコードは引き続き機能します(https://pycryptodome.readthedocs.org/en/latest/src/examples.htmlを参照)


20

VS2010の場合:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

VS2012の場合:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

次に電話:

pip install pyCrypto 

1
VS2013の場合:SET VS90COMNTOOLS =%VS120COMNTOOLS%
Jake1164

2
これは特定のケースで機能する場合がありますが、解決策ではありません。Pythonがコンパイルされたときと同じコンパイラで依存関係がコンパイルされていることを確認する必要があります!
Daniel van Flymen、2015年

1
VS2017はいかがですか?何を設定すればいいですか?
mahshid.r 2018

1
@ mahshid.rでは、VSxxxCOMNTOOLSの環境変数を確認して変数名を取得し、VS90COMNTOOLS変数をVSxxxCOMNTOOLS値に設定できます。CMDの場合:1. "SET VS90COMNTOOLS =%VS140COMNTOOLS%" 2. pip install pyCrypto
Oriel Cochavi '28

18

一般に

vcvarsall.batはVisual C ++コンパイラの一部です。インストールしようとしているものをインストールするには、それが必要です。PythonがVisual Studioツールチェーンでコンパイルされている場合、またはその逆の場合は、MingGWに対処しないでください。Microsoftツールチェーンのバージョンも重要です。VS 2008でコンパイルされたPythonは、VS 2010でコンパイルされた拡張機能では動作しません!

Pythonのバージョンがコンパイルされたのと同じコンパイラでPyCryptoをコンパイルする必要があります。「vcvarsall.batが見つかりません」という問題はGoogleが原因です。これは問題の根本原因であり、WindowsでのPython拡張機能のコンパイルに関する非常に一般的な問題です。

このリンクを使用しているどのシステムでもこれを正しく行うには、たくさんの情報と読むべきことがたくさんあります。

Visual Studio 2010を使用しているか、Visual Studio 2008を使用していないかに注意してください

私の知る限りでは、次のことが当てはまります。これは2010年6月に上記のリンクに投稿されたもので、python.orgで入手可能なPythonインストーラーに対してVS 2010 Expressで拡張機能を構築しようとしていることを示しています。

これを行う場合は注意してください。python.orgのPython 2.6および2.7は、Visual Studio 2008コンパイラで構築されています。Pythonと同じCRT(msvcr90.dll)にリンクする必要があります。

Visual Studio 2010 Expressが不適切なCRTバージョン(msvcr100.dll)とリンクします。

これを行う場合は、Visual Studio 2010 Expressを使用してPythonを再ビルドする必要もあります。Windowsの標準のPythonバイナリインストーラーは使用できません。また、Visual Studio 2010(Express)とは異なるコンパイラーでビルドされたC / C ++拡張機能を使用することもできません。

意見:これは、OSXの深刻な開発作業のためにWindowsを放棄した理由の1つです!


2
洞察をありがとう。しかし、良い天国、それは本当にこの退屈なものでなければなりませんか(自分ではなく、Pythonの神々に向けられた欲求不満)?setup.pyとpipの両方で別のパッケージ(mcrypt)をインストールしようとしましたが、どちらもエラーで終了しました。Windowsユーザーはどのようにしてパッケージをインストールしますか?全員がVS 2008 Expressをダウンロードする必要がありますか?(私はVS 2010を持っていますが、それはうまくいかないと思います)。
Coldblackice

1
いいえ、ありません。OSXやLinuxでは、このようにはなりません。Windowsでは、デフォルトのPythonディストリビューションのプリコンパイルされたバイナリを見つけることができればそれらインストールできます。米国では馬鹿げた輸出規制のため、暗号化機能は通常利用できません。しかし、本当に自分でソースからコンパイルしなかった暗号化ライブラリをインストールしたいですか???? それはどれほど安全ですか、つまり、彼らが何らかの方法で侵害されていないことをどうやって知っているのですか?

「意見:これは、OSXの深刻な開発作業のためにWindowsを断念した理由の1つです!」はい...デバイスにCコンパイラをインストールする前にpythonをダウンロードしました...その後、Visual Studio 2013を入手してVisual Basicを少し実行しました...その後、MinGWを入手して使用できるようにしましたWindowsでCをコンパイルするGCC。要するに、これの一部は私のせいかもしれないが、Pythonがどのような開発環境を使用しようとしているかはわかりません。幸いなことに、pycryptoを含むオンラインのバイナリでPythonパッケージのロードを利用できます。
trevorKirkby

15

PyCryptodomeは上の使用可能なWindowsの車輪とPyCryptoのほぼ互換フォークでは、PyPI

簡単にインストールできます:

pip install pycryptodome

Webサイトには、Microsoftコンパイラを使用してソースからビルドするための手順も含まれています。


6

私が取得するために管理しているpycrypto使用してコンパイルするMinGW32MSYS。これは、あなたが持っているpipか、またはeasy_installインストールされています。

ここに私がそれをした方法があります:

1)MinGW32をインストールします。この説明のために、にインストールされていると仮定しC:\MinGWます。推奨するインストーラーを使用する場合は、. MSYSをインストールするC ++コンパイラーを選択します。MinGW

2)をに追加c:\mingw\bin,c:\mingw\mingw32\bin,C:\MinGW\msys\1.0, c:\mingw\msys\1.0\bin and c:\mingw\msys\1.0\sbinします%PATH%。よくわからない場合は、この記事は非常に役立ちます。

3)検索バーから実行するmsysと、MSYSターミナルが開きます。に慣れている人にとってCygwinは、同様の方法で機能します。

4)pip install pycryptoこの後、MSYSターミナル内からエラーなしで実行されるはずです。


ソリューションにいくつかの手順が不足しているようです。このソリューションについてもう少し詳しく説明します。
Rusty Weber 2014年

5

Windows 7の場合:

WindowsにPycryptoをインストールするには、

コマンドプロンプトでこれを試してください。

path = C:\ Python27 \ Scripts(つまり、easy_installが配置されているパス)を設定します

次に、以下を実行します、

easy_install pycrypto

Ubuntuの場合:

これを試して、

https://pypi.python.org/pypi/pycryptoからPycryptoをダウンロードします。」。

次に、ターミナルを使用して現在のパスをダウンロードしたパスに変更します。ユーザーはrootである必要があります。

例:root @ xyz-virtual-machine:〜/ pycrypto-2.6.1#

次に、ターミナルを使用して以下を実行します。

python setup.py install

それは私のために働いた。希望はすべてのために働く。


私は、Windows 7と、私はエラーを得た最初の時間でこれを実行しました:「エラー:エラーで終了しましたセットアップスクリプト:。マイクロソフトのVisual C ++ 9.0が必要です(vcvarsall.batを見つけることができません)からそれを取得しますaka.ms/vcpython27」。それをインストールし、コマンドをもう一度実行すると、今度は機能しました。
arie


4

Windows 7 SDKツールキットを使用してPyCryptoを構築することが可能です。Windows 7 SDKには2つのバージョンがあります。元のバージョン(.Net 3.5用)には、VS 2008コマンドラインコンパイラが含まれています。32ビットと64ビットの両方のコンパイラをインストールできます。

最初のステップは、高速演算を提供するためにmpirをコンパイルすることです。gmpyライブラリで使用するプロセスを文書化しました。SDKのコンパイラを使用してmpirを構築するための詳細な手順はで見つけることができますsdk_build

DOSプロンプトからSDKコンパイラを使用する主な手順は次のとおりです。

1)必要に応じてvcvars32.batまたはvcvars64.batを実行します。

2)プロンプトで「set MSSdk = 1」を実行します

3)プロンプトで「set DISTUTILS_USE_SDK = 1」を実行します

これにより、Cコードに他の問題がないと想定して、「python setup.py install」が成功するはずです。しかし、mpirを有効にしてmpirライブラリを見つけるには、いくつかのPyCryptoファイルを編集する必要があったことを漠然と覚えていますが、現時点ではWindowsシステムが稼働していません。ステップを再現する時間があるまでに数日かかります。それまでに成功を報告していない場合は、PyCryptoの手順を投稿します。手順では、mpirをコンパイルできたと想定しています。

これがお役に立てば幸いです。



3

そこで、MinGWをインストールし、選択したコンパイラーとしてインストール行に追加します。しかし、「RuntimeError:chmod error」というエラーが表示されます。

このエラー"RuntimeError: chmod error"は、インストールスクリプトがchmodコマンドを見つけられなかったために発生します。

どうすればこれを回避できますか?

解決

MSYSバイナリをPATH追加して、インストールスクリプトを再実行するだけです。

(注意:MinGWにはMSYSが付属しているので注意してください)

たとえば、フォルダにいる場合 C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1>

C:\.....>set PATH=C:\MinGW\msys\1.0\bin;%PATH%
C:\.....>python setup.py install

オプション:スクリプトを再実行する前に、クリーンアップが必要になる場合があります。

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`

3
  1. 移動し、「Pythonの2.7のMicrosoft Visual C ++コンパイラと「システム要件」に基づいて継続(これは私が一緒にステップの下に置くために何をしたかです)。

  2. 次のいずれかの方法でsetuptools をインストールします(Pythonがこのコンパイラパッケージを自動検出するにはsetuptools 6.0以降が必要です) pip install setuptools または、「Setuptoolsブートストラップインストーラ」ソースをからダウンロード、このファイルをファイルスタイルの「ez_python.py」として保存し、次のようにインストールします。python ez_python.py

  3. wheelをインストールします(wheelは、ビルド済みのバイナリパッケージを作成する場合に推奨されます)。あなたはそれをインストールすることができます:pip install wheel

  4. Windows管理者特権のコマンドプロンプトcmd.exe(「管理者として実行」を使用)を開き、すべてのユーザーに「Microsoft Visual C ++ Compiler for Python 2.7」インストールします。これを行うには、次のコマンドを使用できます。msiexec/ i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1は、ファイルへの独自のパスを使用するだけです。msiexec /i <path to MSI> ALLUSERS=1

  5. これでpycryptoを次のようにインストールできるはずです: pip install pycrypto


3

WindowsでPycrypcのインストールに苦労している場合は、pip install pycryptodomeを使用してください。それは奇跡のように機能し、多くの設定や微調整を行うよりもはるかに簡単にあなたの人生を作るでしょう。


2

これはおそらく最適なソリューションではありませんが、MSから無料のVisual C ++ Expressパッケージをダウンロードしてインストールすることができます。これにより、PyCryptoコードをコンパイルするために必要なC ++コンパイラが提供されます。


2

私の答えはここでの問題の言及とは関係ないかもしれませんが、Crypto.Cipherが有効なインポートではないPython 3.4でも同じ問題がありました。そこで、PyCryptoをインストールしてみましたが、問題が発生しました。

3.4で見つけたいくつかの調査の後、pycryptodomeを使用する必要があります。

pycharmを使ってpycryptodomeをインストールしました。

Crypto.CipherからのインポートAES


1

そこで、MinGWをインストールし、選択したコンパイラーとしてインストール行に追加します。しかし、「RuntimeError:chmod error」というエラーが表示されます。

あなたはMinGWの下にmsysパッケージをインストールする必要があります

ここに画像の説明を入力してください

次のエントリをPATH環境変数に追加します。

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [ここにchmod実行可能ファイルがあります]

次に、通常のWindowsコマンドプロンプトからコマンドを実行します。


0

奇妙な法的理由により、バイナリは通常の方法では公開されません。Voidspaceは通常、最良の2番目のソースです。しかし、かなり以前から、ボイドスペースのメンテナは更新していませんでした。[ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]の zipを使用します


2
dropboxからバイナリをダウンロードします。
Smit Johnth、2014

バイナリをダウンロードして、VirusTotalでスキャンしました。もちろん、それはウイルスがいないことを意味するだけで、暗号化されたバックドアがないということではありません。幸い、PythonAnywhereでこのプロジェクトをホストしているので、開発にのみ使用しています。
レンジvs.レンジ

0

ステップ1:ここからVisual C ++ 2010 Expressをインストールし ます

(Microsoft Visual Studio 2010 Service Pack 1をインストールしないでください)

手順2:コントロールパネル\プログラムと機能からすべてのMicrosoft Visual C ++ 2010再頒布可能パッケージを削除します。これらを行わないと、インストールは不明瞭な「インストール中の致命的なエラー」エラーで失敗します。

手順3:Visual Studio 2010(v7.1)用のWindows SDKのオフラインバージョンをここからインストールします。これは64ビット拡張に必要です。Windowsには、PismoのようなISOの組み込みマウントがあります。

ステップ4:Pismo File Mount Audit PackageでISOファイルをインストールする必要があります。ここからPismoをダウンロード

ステップ5:ダウンロードしたISOファイルを右クリックし、Pismoでマウントを選択します。その後、setup.exeの代わりにSetup \ SDKSetup.exeをインストールします。

手順6a:ディレクトリをC:\ Program Files(x86)\ Microsoft Visual Studio version \ VC \に変更して、C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64にvcvars64.batファイルを作成しますコマンドプロンプト。コマンドプロンプトでコマンドを入力します。 cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

ステップ6bは:64ビットのコマンド・ラインのために、このコマンドプロンプトウィンドウを設定するには、入力し、プロンプトコマンドで、そのターゲットx86プラットフォームを構築します: vcvarsall x86クリックして、ここでより多くのオプションのために。

手順7:コマンドプロンプトで、次のように入力してPyCryptoをインストールします。 C:\Python3X>pip install -U your_wh_file


0

私はPycharm for pythonを持っていました。

  1. に行く pycharm -> file -> setting -> project interpreter

  2. クリック +

  3. "pycrypto"パッケージを検索してインストールします

注:「Microsoft Visual C ++ Compiler for Python 2.7」がインストールされていない場合は、インストールを求めるプロンプトが表示されます。インストールが完了したら、上記の手順を試してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.