2017-06-18 111 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