Python 2.7をWindow 7システムにインストールするためにCythonをインストールしようとしました。特に、64ビットのすべてを好みます。(Cythonは特殊な数値解析のために別のパッケージに必要なコンポーネント。x64は、大規模なデータセットのストレージにとって潜在的に有利です。
だから私は公式サイトからx64 Python 2.7をダウンロードしました。 Christoph Gohlke からCythonを手に入れました。Python 2.7インストールする前に、Python 2.7を Joe DF's answer here にある.reg
ファイルと共にレジストリに追加しました。その後、Visualをインストールしました。 here (動作するとは思わない)および here (ただし、これは動作するはずです)のC++コンパイラ。この時点で、C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
vcvars32.bat
、vcvars64.bat
、vcvars86_AMD64.bat
、vcvarsx86_ia64.bat
のすべてのディレクトリvcvars64.bat
を実行しましたが、エラーメッセージはありませんでした。
その後、 このページ に従って「hello world」テストファイルを作成しました。
その後、このエラーが発生しました。
...\Tests>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
error: Unable to find vcvarsall.bat
だから私は自分自身に考えた:まあ、Cythonは存在しないため、そのファイルを見つけることができません。 (ハードドライブ全体を検索しました。)vcvars64.bat
を...\VC\bin
から\VC
にコピーし、名前をvcvarsall.bat
に変更しました。 vcvarsallエラーはなくなりました。そして...当然、新しいエラーが発生します。
...\Tests>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\AMD64\cl.exe /c /nolog
o /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\PC /Tchello.c /F
obuild\temp.win-AMD64-2.7\Release\hello.obj
hello.c
C:\Python27\include\pyconfig.h(227) : fatal error C1083: Cannot open include fil
e: 'basetsd.h': No such file or directory
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\AMD64
\cl.exe"' failed with exit status 2
今、私はどのように進むべきか分かりません。私は何をすべきか?あなたの助けは大歓迎です。
(わかりやすくするために、コンパイラをMingw32に設定してみましたが、他にもエラーがあります。VCを今のところ動作させることに集中しています。)
編集: このページ の指示に従ってSDKビルド環境CMDを使用してみました。同じエラーを受け取りました。
誰かが現在(2017)ビジュアルC++ 2015ツールで同じエラーに直面している場合、セットアップを再度起動し、OSに応じてWindows 8.1/10 SDKを選択します。これにより、basestd.h
エラー。
それでも動作しない場合は、C:\ Program Files(x86)\ Microsoft Visual C++ Build Toolsからビルドツールを起動してみてください。
別の方法としては、anaconda 2または3をインストールするだけです(メモリエラーが必要ない場合は64ビット)。事前に構築されたすべての重要なパッケージが含まれています:sklearn、matplotlib、scipy、numpy、pandas、さらにフラスコなどのWeb開発フレームワーク。
「開発」モードでpandas
をインストールしようとしたときに、この問題が発生しました。私は今稼働中です。私の環境:
<--
_システムのpython WinPythonコントロールパネルアプリケーションを使用したディストリビューションとして登録 "_python setup.py develop
_の実行中に発生した問題:
溶液:
<--
_これにより、_basetsd.h
_が得られます<--
_これにより、64ビットコンパイラが提供されますC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat
をC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\AMD64\vcvarsamd64.bat
にコピーします。ファイル名の変更を確認します。PATH
にC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
を追加します。これは必要ないかもしれません(SDK w/Headers&Libsを再インストールする前にそうしました;したがって、必要性は不明です)。この時点で、_python setup.py develop
_の実行が正常に完了し、_python -c "import pandas; print pandas.__version__"
_が期待したgitタグになりました。
[編集]さらに読むには:
Windows 10の場合は、SDKを here からダウンロードして、ヘッダーファイルbasestd.h
を修正します。
.exeをダウンロードし、インストールして、問題なく動作しました。 SDKは最大2.3GBでした。
注:64ビットシステムで追加エラーが発生した私のような場合:
`LINK : fatal error LNK1158: cannot run 'rc.exe'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_AMD64\\link.exe' failed with exit status 1158
すばらしい回答があります ここ これは、システムの正しいフォルダーにrc.exe
ファイルを配置することで問題を解決します。
提案として、setup.pyでcython 64ビットをビルドするためにそれを試すことができます
pythonディストリビューション、MicrosoftのWindopws SDK 7、およびMSVC 12.0にAnacondaを使用しています。
まず、cuda関数のライブラリを作成します。次に、python setup.py build_ext -iを実行して一時フォルダーを作成します(エラーが発生します)、次にMakefileをコンパイルします。
ほとんどの場合、32ビットアプリのコンパイル時にsetup.pyから取得し、64ビットのコンパイル用に変更します。
メイクファイル
CL_EXE = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\AMD64\cl.exe"
LINK_EXE = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\AMD64\link.exe"
CL_FLAGS = /c /nologo /Ox /MD /W3 /GS- /DNDEBUG /O2 /fp:fast
CL_INC = -I. -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" \
-I"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include" -IC:\Users\name\Anaconda2\envs\py27\Lib\site-packages\numpy\core\include -IC:\Users\name\Anaconda2\envs\py27\include -IC:\Users\name\Anaconda2\envs\py27\PC
LINK_FLAGS = /DLL /nologo /INCREMENTAL:NO /MACHINE:X64
LINK_LIBPATH = "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64" \
/LIBPATH:C:\Users\name\Anaconda2\envs\py27\libs \
/LIBPATH:C:\Users\name\Anaconda2\envs\py27\PCbuild\AMD64 \
/LIBPATH:C:\Users\name\Anaconda2\envs\py27\PC\VS9.0\AMD64 \
"/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\AMD64" \
"/LIBPATH:C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64"
LINK_LIB = cuda_multiply4D.lib cudart.lib MSVCRT.lib kernel32.lib
LINK_EXPORT = /EXPORT:initmy_cuda
LINK_OBJ = build\temp.win-AMD64-2.7\Release\my_cuda.obj
LINK_OUT = "/OUT:E:\my_cuda.pyd"
LINK_OTHER_CONF = /IMPLIB:build\temp.win-AMD64-2.7\Release\my_cuda.lib /MANIFESTFILE:build\temp.win-AMD64-2.7\Release\my_cuda.pyd.manifest
all:
$(CL_EXE) $(CL_FLAGS) $(CL_INC) /Tcmy_cuda.c /Fobuild\temp.win-AMD64-2.7\Release\my_cuda.obj
$(LINK_EXE) $(LINK_FLAGS) $(LINK_LIBPATH) $(LINK_LIB) $(LINK_EXPORT) $(LINK_OBJ) $(LINK_OUT) $(LINK_OTHER_CONF)
注意:
これらをVisual Studioインストールディレクトリの環境変数に追加します
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\bin
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\Tools
問題が解決することを願っています。