更新:この回答は 5 年以上前のものです! Python-2.7 はまもなく非推奨になるため、本当に必要なのは Python-3 用の Microsoft Visual C コンパイラです。この Python wiki on MS Windows Compilers を見てください。MS Build Tools 2015 with VC-14.0 は、Python-3.5 および 3.6 の拡張機能をビルドするために必要なものです。VC-14.0 を含む古いMS ビルド ツール 2015または2017 用の新しい MS ビルド ツールをインストールできます。
また、お使いの pip と setuptools のバージョンが最新であれば、そのばかげた古い学校の MSSDK ナンセンスをすべて無視できます。特に、Python 2.7 または MS ビルド ツール 2015 用の VC を使用している場合。
更新: Zoobaが以下で言及しているように、Python-2.7 用の無料の x86 および AMD64 (x86-64) VC90 c コンパイラが Microsoft から入手できるようになりました。
更新: SDK v7.0 の x64 コンパイラを任意のシェルで直接使用するためのパッチvcvarsall.bat
pip
を適用し、以下の手順に従ってSDK シェルを使用し、環境変数を設定DISTUTILS_USE_SDK
しMSSdk
ます。sdk7 の代わりに v90 で Python-2.7 x64 拡張機能をインストールするには、「vcvarsall.bat を修正する」を参照してください。
tl;dr: Windows SDK v7.0 コンパイラを使用し、SDK シェルを開いて呼び出します
C:\> setenv /release /x64
C:\> set DISTUTILS_USE_SDK=1
C:\> MSSdk=1
distutils を使用して Python 2.7.x 拡張機能をビルドするには、pip
またはeasy_install
. Python x64 Package Extensions with pip、MSVC 2008 Express & SDK 7を参照してください。
注: Christoph Gohlke の Intel MKL を使用して最適化された Numpyをインストールできます。virtualenv の場合は、バイナリ配布の Windows インストーラーを、pip でインストールできるwheelファイルに変換してみてください。ソースからNumPyをビルドするのは簡単ではありません。GotoBLASのフォークであるOpenBLASが最近導入され、利用可能になったことで、それが可能になりました。Windows x86 および x86-64 用に最適化されたバイナリと、 GotoBLAS やATLASよりもコンパイルが比較的簡単なソースがあります。
注: これまで、ソースから NumPy をコンパイルすることはお勧めしませんでした。なぜなら、BLAS をプラットフォームに合わせて最適化する必要があり、これには非常に時間がかかり、リファレンス BLAS (FORTRAN) または CBLAS (C/C++) の実装は比較的パフォーマンスが低かったからです。 . また、NumPy はLAPACKに依存しており、これは BLAS にも依存しており、これは NumPy を構築するための追加のハードルです。ただし、OpenBLAS バイナリは既に LAPACK でコンパイルされているため、この障害は既に取り除かれています。Carl Kleffner の静的 MinGW-w64 ツールチェーンを参照して、Windows で OpenBLAS を使用して NumPy を構築してください。彼は、ABI の非互換性と、正しい Microsoft Visual C Common Runtime ライブラリ ( msvcr90.dll
Python-2.7 用) にリンクする問題のいくつかを解決しました。
Windows 7 x64 への Python 拡張機能のインストールに関する主な質問に進みます。
拡張機能をコンパイルするための推奨される方法は、Python 共有ライブラリのコンパイルに使用されるものと同じコンパイラを使用することです [1-3]。Windows 用の公式の Python 2.7.x は、Microsoft Visual Studio 2008 Professional の Microsoft Visual C++ コンパイラ バージョン 9.0 [4] (別名 MSVC90 または単に VC90)を使用してコンパイルされました。これは、 Microsoft DreamSparkから無料で入手できる場合があります。明らかに、x64 コンパイラはデフォルトではインストールされていないため、x86 コンパイラと一緒にインストールされていることを確認してください。注: MS Visual Studio 2008 は使用できなくなった可能性がありますが、MS Visual Studio 2010 をインストールすると、Windows SDK7 からインストールできる MSVC90 ツールチェーンを使用できます。
コマンド ラインから Python インタープリターを実行するときに、ヘッダーを確認することで、Python がビルドされたバージョンを確認できます。例: Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
VS 2008 C++ でビルドされたことを意味します。ソースから Python を自分でビルドすることもできますが、これも骨の折れる作業です。一般に、複数のコンパイラ ランタイムを混在させることはお勧めしませんが、実際にはそれらが機能する場合もあります。
GNU GCCを使用したい場合は、mingw-w64を使用する必要があります。これは、MinGWが AMD64/x86-64 ではなくネイティブ x86 アプリケーション専用であるためです。あなたがする必要があります
ただし、最終的には、Python がビルドされたランタイムにリンクする必要があるため、 Visual C++ 2008 redistributablemsvcr90.dll
が必要になります。注: mingw-w64 の Windows GCC は、 which is not the same or laterを使用します。msvcrt.dll
msvcr90.dll
無料で実行したい場合は、Microsoft Visual C++ 2008 Express SP1を使用できますが、Express バージョンにはx64 コンパイラがないため、 Windows SDK 7 for .NET Frameworks 3.5 SP1を追加する必要があります。VS2008 Express & SDK 7 で x64 C++ 拡張機能をインストールする手順は、Windows x64 拡張機能の cython サイトにある手順と非常によく似ています。注: MS Visual Studio 2008 Express は使用できなくなり、サポートも終了しました。
参考までに: Microsoft コンパイラを使用してビルドするのに Visual Studio は必ずしも必要ではありません。これらは、適切な SDK パッケージで無料で入手できます。CL.EXE
はコンパイラの実行可能ファイルですが、Autotools または CMAKE などの他のツールによって通常構成されるプラットフォーム オプションを設定する必要があります。CMAKE は MSVC でうまく機能しますが、Autotools AFAIK は MSVC では機能せず、Windows でMSYSで利用できるいくつかの POSIX 環境とユーティリティが必要になります。
distutils または setuptools を使用する多くの Python パッケージでは、Windows SDK 7 を使用して、リファレンス ドキュメントや wiki を通じてさまざまな場所に投稿されている指示に従って拡張機能をコンパイルできます。
- [スタート] メニューから[すべてのプログラム] 、 [ Microsoft Windows SDK v7.0 ] の順に選択し、 CMD シェルを起動して、Windows SDK 用に最適化されたコマンド ウィンドウを開きます。
ステップ #1 は、[スタート] メニューまたはコマンド プロンプト (別名)から [ファイル名を指定して実行]ボックスに次のように入力することと同じです。C:\Windows\System32\cmd.exe
%COMSPEC% /E:ON /V:ON /K "%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd"
注:/E:ON
コマンド拡張機能を有効にするフラグと/V:ON
、遅延変数展開を有効にするフラグは、両方ともSetEnv.cmd
機能するために必要です。そうしないと、x64 コンパイラがインストールされていないというメッセージ &c が表示されます。
次にsetenv /Release /x64
、Windows 7 x64 リリース専用の SDK 環境変数を設定するものを入力します (デフォルトの debug または x86 に対して)。
- 「 hit
set DISTUTILS_USE_SDK=1
return」と入力してから「and return」と入力して、SDK を使用していること、および SDK がすべての環境変数を決定することset MSSdk=1
を伝えます。distutils.msvccompiler
- 次に、選択したインストール方法を使用します。
pip install pyyaml ntlk
これが推奨される方法です。 ntlk を参照してください。ただし、 setuptoolsとpipがインストールされている必要があります。
python setup.py install
ダウンロードされ、抽出された tarball ごとに
easy_install pyyaml ntlk
これは古い方法であり、卵をインストールする唯一の方法です。
[1] Windows での C および C++ 拡張機能のビルド
[2] distutils.msvccompiler — Microsoft コンパイラ
[3] Python 開発ガイド: はじめに: Windows
[4]この python をコンパイルした Visual Studio のバージョン