2017-06-18 112 views
-1
C:\Users\AliAbbas\Google Drive\Work\J.E.S.S\Cython\Code>python setup.py build_ex 
t -i --compile=mingw32 -DMS_WIN64 
running build_ext 
Traceback (most recent call last): 
    File "setup.py", line 4, in <module> 
    setup(ext_modules = cythonize("HelloWorld.pyx")) 
    File "C:\Program Files\Python35\lib\distutils\core.py", line 148, in setup 
    dist.run_commands() 
    File "C:\Program Files\Python35\lib\distutils\dist.py", line 955, in run_comma 
nds 
    self.run_command(cmd) 
    File "C:\Program Files\Python35\lib\distutils\dist.py", line 974, in run_comma 
nd 
    cmd_obj.run() 
    File "C:\Program Files\Python35\lib\distutils\command\build_ext.py", line 308, 
in run 
    force=self.force) 
    File "C:\Program Files\Python35\lib\distutils\ccompiler.py", line 1031, in new 
_compiler 
    return klass(None, dry_run, force) 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 282, i 
n __init__ 
    CygwinCCompiler.__init__ (self, verbose, dry_run, force) 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 157, i 
n __init__ 
    self.dll_libraries = get_msvcr() 
    File "C:\Program Files\Python35\lib\distutils\cygwinccompiler.py", line 86, in 
get_msvcr 
    raise ValueError("Unknown MS Compiler version %s " % msc_ver) 
ValueError: Unknown MS Compiler version 1900 

我一直在試圖編譯這段代碼幾天,而且在發生了幾處錯誤之後,我到了這裏,我不知道下一步該怎麼做。我已經安裝了MINGW32,不知道下一步該怎麼做Cython編譯錯誤

我下面O'Reilly的在用Cython書,使用Windows 8.1,並一直試圖關於Python 3.6.1和3.5.1

+0

這種事情總是難以遠程設置或診斷 - 通常最好的解決方案是使用一個包含所有庫和編譯器的Python分發版。我自己使用WinPython(儘管我認爲3.6可能不適用於任何發行版的mingw)。如果你不想這樣做,那麼你需要提供關於你已經安裝了什麼以及在哪裏(儘可能多的信息)的更多細節。另外,我不確定Mingw32和64位Python是否可以一起工作 - 你有檢查嗎? – DavidW

+0

@DavidW 我試着用64位MinGW發行版(mingw-w64,我覺得很接近),從Python 3.6切換到WinPy 3.5.3,編寫完後: 'C:\ Users \ AliAbbas \ Google Drive \ Work \ JESS \ Cython \ Code> python setup.py build_ex t -i --compiler = mingw32 -DMS_WIN64' 我得到了同樣的錯誤,當我第一次使用Cython時第一次嘗試: 'TypeError:無法編輯的類型:NoneType()> = str()' 我不知道現在還能做什麼 感謝您的幫助! :) –

+0

我想嘗試的另一件事是沒有該行的'--compiler = mingw32'位(它應該自動選擇編譯器)。除此之外,我不知道 - 對不起! – DavidW

回答

0

你使用的是Python 3.5嗎?你確定你使用的編譯器與Python的編譯器相匹配嗎?谷歌搜索應該很快找到。 Visual Studio 2015社區適用於大多數Windows版本。我在你的文章中看到你也在嘗試Linux,這很可能是一些GCC變體。

+0

那麼,我已經安裝了visual studio 2017,它應該安裝C++編譯器嗎?如果沒有,那我該如何檢查? –

+0

@AliAbbas如果你有(C)Python 3.5 for Windows,那麼你必須使用Visual Studio 2015.正如我提到的使用社區版本,它會給你一個開發人員的命令提示符在你的Windows下拉菜單中應該加載所有需要的VS 2015年的圖書館爲您的構建。像'Visual Studio 2015的MSBuild命令提示符' – Matt

+0

您也可以輸入:'import sys',然後輸入'print(sys.version)',它會告訴你編譯器是否使用了你的Python。 – Matt