2017-10-31 25 views
0

Visual StudioのPythonでは、私が知っている限り、Cソースコンパイルを必要としないパッケージをインストールできます。コンパイルが必要なパッケージに関しては、常に失敗します。インストールの試行は、常にpip install package-nameでVisual Studio内で行われます。Cソースコンパイルが必要なパッケージでPythonパッケージのインストールに失敗する(Visual Studio 2017)

  • のVisual Studio 2015(VS 14.0)C/C++スタンドアロンコンパイラをインストールした後、マシンを再起動
  • に失敗し、まだ、コンパイラのインストール後に再インストールパッケージに試してみてください。これは私がしようとしているものです

    :まだ具体的に

に失敗し、パッケージを再インストールしようと、私はRPIORPi.GPIOは、多かれ少なかれ、それは同様のエラーメッセージを与えるインストールしようとしていますここでは

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

RPIOインストール試行からの完全なログです:

----- Installing 'RPIO==0.10.0' ----- 
Collecting RPIO==0.10.0 
    Using cached RPIO-0.10.0.tar.gz 
Installing collected packages: RPIO 
    Running setup.py install for RPIO: started 
    Running setup.py install for RPIO: finished with status 'error' 
    Complete output from command "C:\Program Files\Python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\ELEMEN~1\\AppData\\Local\\Temp\\pip-build-4lvb_8wu\\RPIO\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\ELEMEN~1\AppData\Local\Temp\pip-oqz8bi8d-record\install-record.txt --single-version-externally-managed --compile: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build\lib.win-amd64-3.6 
    creating build\lib.win-amd64-3.6\RPIO 
    copying source\RPIO\Exceptions.py -build\lib.win-amd64-3.6\RPIO 
    copying source\RPIO\_RPIO.py -build\lib.win-amd64-3.6\RPIO 
    copying source\RPIO\__init__.py -build\lib.win-amd64-3.6\RPIO 
    creating build\lib.win-amd64-3.6\RPIO\PWM 
    copying source\RPIO\PWM\__init__.py -build\lib.win-amd64-3.6\RPIO\PWM 
    running build_ext 
    building 'RPIO._GPIO' extension 
    creating build\temp.win-amd64-3.6 
    creating build\temp.win-amd64-3.6\Release 
    creating build\temp.win-amd64-3.6\Release\source 
    creating build\temp.win-amd64-3.6\Release\source\c_gpio 
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\winrt" /Tcsource/c_gpio/py_gpio.c /Fobuild\temp.win-amd64-3.6\Release\source/c_gpio/py_gpio.obj 
    py_gpio.c 
    source/c_gpio/py_gpio.c(361): error C2373: 'setmode': redefinition; different type modifiers 
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\ucrt\corecrt_io.h(528): note: see declaration of 'setmode' 
    source/c_gpio/py_gpio.c(431): warning C4028: formal parameter 1 different from declaration 
    source/c_gpio/py_gpio.c(431): warning C4028: formal parameter 2 different from declaration 
    source/c_gpio/py_gpio.c(431): warning C4047: 'initializing': 'PyCFunction' differs in levels of indirection from 'int (__cdecl *)(int,int)' 
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2 

    ---------------------------------------- 
Command ""C:\Program Files\Python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\ELEMEN~1\\AppData\\Local\\Temp\\pip-build-4lvb_8wu\\RPIO\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\ELEMEN~1\AppData\Local\Temp\pip-oqz8bi8d-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\ELEMEN~1\AppData\Local\Temp\pip-build-4lvb_8wu\RPIO\ 
----- Failed to install 'RPIO==0.10.0' ----- 

は、だから私は何かが足りないのですか?それとも、何か不足しているパッケージのソースですか?

+0

ビジュアルスタジオ用にPythonをインストールしましたか? – babygame0ver

+0

@AkshayKathpalはい、もちろんです。 –

+0

'py_gpio.c'のソースを見て、コンパイラエラーメッセージが何を不満しているかをさらに調べましたか?作者がWindowsでそれを構築しようと試みたことはない可能性があります。 – martineau

答えて

0

py_gpio.csetmode(行431で使用されています)を再定義しています。です。これはコードのバグですので、所有しているチームを見つけて報告してください。 MSVCの古いバージョンをサポートするために追加した可能性があります。現在のバージョンには追加しないでください。

また、コードではCランタイムとは異なる定義が使用されているように見えますが、後で変数の型が一致しないと問題を引き起こす可能性があります。ここで完全なコードレビューが必要な場合があります。

いずれにしても、これはRPi.GPIOパッケージの問題であり、使用しているインストールや使用しているツールでは問題があるようです。

0

まずありがとう、これは全体の解決策ではなく、いくつかの回避策ではない問題

をほのめかしためにあなた@martineauに感謝。

1.別のIDE /ツール

Windowsのツールチェーンと互換性がありませんまだライブラリは、あなたが他のツールまたは行う可能性がありますIDEを試すことができますが。


2.別のライブラリ

これは私が取る回避策です。 RPI GPIOにアクセスするためのPythonライブラリが必要ですが、RPi.GPIORPIOはWindows版にはインストールされません。私はgpiozeroという別のライブラリに移動します。これはWindows Pythonと互換性があります(これは正常にpip-VSに収められています)、これまで必要な機能を提供しています。

関連する問題