web-dev-qa-db-ja.com

Windows x64でCythonを実行する-致命的なエラーC1083:インクルードファイルを開けません: 'basetsd.h':そのようなファイルまたはディレクトリはありません

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\binvcvars32.batvcvars64.batvcvars86_AMD64.batvcvarsx86_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を使用してみました。同じエラーを受け取りました。

25
Argyll

誰かが現在(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開発フレームワーク。

22
Varun Garg

「開発」モードでpandasをインストールしようとしたときに、この問題が発生しました。私は今稼働中です。私の環境:

  • Windows XP Pro x64 SP2
  • WinPython 64bit 2.7.5.3(Python 2.7.5.AMD64)_<--_システムのpython WinPythonコントロールパネルアプリケーションを使用したディストリビューションとして登録 "

_python setup.py develop_の実行中に発生した問題:

  • Vcvarsall.batが見つかりません
  • 致命的なエラーC1083:インクルードファイルを開けません: 'basetsd.h':そのようなファイルまたはディレクトリはありません...終了コード2

溶液:

  1. ダウンロード Microsoft Visual C++ 2008 Expressをインストールします。
  2. ダウンロード Windows 7および.NET Framework 3.5 SP1用のMicrosoft Windows SDKをインストールします。あなただけが必要になります:
    • 開発者用ツール> Windowsヘッダーとライブラリ_<--_これにより、_basetsd.h_が得られます
    • 開発者ツール> Visual C++コンパイラ_<--_これにより、64ビットコンパイラが提供されます
  3. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.batC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\AMD64\vcvarsamd64.batにコピーします。ファイル名の変更を確認します。
  4. PATHC:\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タグになりました。

[編集]さらに読むには:

21
patricktokeeffe

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ファイルを配置することで問題を解決します。

7
Dermot McGrath

提案として、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)

注意:

  • MSVCRT.lib kernel32.libはオプションです。
  • / EXPORT:initmy_cudaは必須です。そのフォーマットはinit%yourfilename_WO_Ext%です
  • 「/OUT:E:\my_cuda.pyd」は、出力場所、ファイル名、および拡張子を決定します。
1
Khalif21

これらを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

問題が解決することを願っています。

0
Khan