Python编译错误

Python编译错误,python,weave,Python,Weave,我是个新手,不知道是什么导致了这个错误。错误也发生在其他代码示例上,因此它不是特定的代码。我正在使用Windows7和Python2.7。感谢所有能帮忙的人 >>> from scipy import weave >>> a = 1 >>> weave.inline('printf("%d\\n",a);',['a']) No module named msvccompiler in numpy.distutils; trying from

我是个新手,不知道是什么导致了这个错误。错误也发生在其他代码示例上,因此它不是特定的代码。我正在使用Windows7和Python2.7。感谢所有能帮忙的人

>>> from scipy import weave
>>> a = 1
>>> weave.inline('printf("%d\\n",a);',['a'])

No module named msvccompiler in numpy.distutils; trying from distutils
Looking for python27.dll
Looking for python27.dll


Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    weave.inline('printf("%d\\n",a);',['a'])
  File "C:\Python27\lib\scipy\weave\inline_tools.py", line 366, in inline
    **kw)
  File "C:\Python27\lib\scipy\weave\inline_tools.py", line 496, in compile_function
    verbose=verbose, **kw)
  File "C:\Python27\lib\scipy\weave\ext_tools.py", line 373, in compile
    verbose=verbose, **kw)
  File "C:\Python27\lib\scipy\weave\build_tools.py", line 279, in build_extension
    setup(name=module_name, ext_modules=[ext],verbose=verb)
  File "C:\Python27\lib\site-packages\numpy\distutils\core.py", line 169, in setup
    return old_setup(**new_attr)
  File "C:\Python27\lib\distutils\core.py", line 166, in setup
    raise SystemExit, "error: " + str(msg)
CompileError: error: Command "g++ -m64 -g -shared c:\users\owner\appdata\local\temp\scipy-owner-tbcany\python27_intermediate\compiler_e3b0c44298fc1c149afbf4c8996fb924\Release\users\owner\appdata\local\temp\owner\python27_compiled\sc_cb1945ea063627b5855c13eafebb07042.o c:\users\owner\appdata\local\temp\scipy-owner-tbcany\python27_intermediate\compiler_e3b0c44298fc1c149afbf4c8996fb924\Release\python27\lib\scipy\weave\scxx\weave_imp.o -LC:\Python27\libs -LC:\Python27\PCbuild\amd64 -lpython27 -lmsvcr90 -o c:\users\owner\appdata\local\temp\owner\python27_compiled\sc_cb1945ea063627b5855c13eafebb07042.pyd" failed with exit status 1
来自scipy import weave的
>
>>>a=1
>>>weave.inline('printf(“%d\\n”,a);',['a']))
numpy.distutils中没有名为msvccompiler的模块;从distutils开始尝试
正在查找python27.dll
正在查找python27.dll
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
weave.inline('printf(“%d\\n”,a);',['a']))
文件“C:\Python27\lib\scipy\weave\inline_tools.py”,第366行,inline
**千瓦)
文件“C:\Python27\lib\scipy\weave\inline\u tools.py”,第496行,在compile\u函数中
详细=详细,**千瓦)
文件“C:\Python27\lib\scipy\weave\ext\u tools.py”,第373行,编译中
详细=详细,**千瓦)
文件“C:\Python27\lib\scipy\weave\build\u tools.py”,第279行,内部版本扩展名
设置(名称=模块名称,外部模块=[ext],详细=动词)
文件“C:\Python27\lib\site packages\numpy\distutils\core.py”,第169行,在安装程序中
返回旧的\u设置(**新的\u属性)
文件“C:\Python27\lib\distutils\core.py”,第166行,在安装程序中
raise SystemExit,“错误:+str(消息)
编译器错误:错误:命令"g++-m64-g-shared c:\users\owner\appdata\local\temp\scipy owner tbcany\python27\u intermediate\compiler\u e3b0c4429fc1c149afbf4c8996fb924\Release\users\owner\appdata\local\temp\owner\python27\u compiled\sc\u cb1945ea0627b585c13eafebb07042.oc:\users\owner\appdata\local\temp\scipy owner tbcany\python27\libs-LC:\python27\PCbuild\amd64-lpython27-lmsvcr90-o c:\users\owner\appthon27\lib\scipy\weave\scxx\weave\imp.o-LC:\python27\PCbuild\amd64-lpython27-lmsvcr90-o c:\users\owner\appdata\local\temp\owner\python27\python27\compiled\sc\cbu\cb1945EA3627855ceab52.python22“失败,退出状态为1
weave.test()没有发现任何错误,但它只运行了146个测试,文档中说它应该运行180个

>>> weave.test()
Running unit tests for scipy.weave
NumPy version 1.9.1
NumPy is installed in C:\Python27\lib\site-packages\numpy
SciPy version 0.15.1
SciPy is installed in C:\Python27\lib\scipy
Python version 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)]
nose version 1.3.7
..................................S.SSS....SSSSSS.................................................................................................
----------------------------------------------------------------------
Ran 146 tests in 3.439s

OK (SKIP=10)
<nose.result.TextTestResult run=146 errors=0 failures=0>
>weave.test()
运行scipy.weave的单元测试
NumPy版本1.9.1
NumPy安装在C:\Python27\lib\site packages\NumPy中
SciPy版本0.15.1
SciPy安装在C:\Python27\lib\SciPy中
Python版本2.7.8(默认值,2014年6月30日,16:08:48)[MSC v.1500 64位(AMD64)]
nose版本1.3.7
S.SSS…SSSSS。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
----------------------------------------------------------------------
在3.439秒内运行了146次测试
正常(跳过=10)

…很久以前,我在编译
weave
代码时遇到了问题。这个问题可能是由于将(Visual Studio)预编译的Python与MinGW编译的
weave
代码混合在一起造成的

当时,我正在使用MinGW64编译器(MinGW32也可以使用),并开发了一个三步解决方案

1) 在
\libs
目录中,删除MSVCR运行时库文件,该文件应命名为
libmsvcr100.a
libmsvcr100d.a
(或其中包含
90
或任何其他版本号)。同时删除文件夹中具有相同创建日期的任何文件(首次尝试使用weave)

2) 在(可能尚未创建)文件
\Lib\distutils\distutils.cfg
\Lib\site packages\numpy\distutils\distutils.cfg
中,我包含了编译器定义

[build]
compiler = mingw32
也许你需要根据你的编译器类型来调整它

3) 在
\Lib\site packages\numpy\distutils\mingw32compiler.py
中,在第329行附近出现了真正的“hack”:

build\u msvcr\u libaray(debug=False)
的函数实现中,只需硬编码
返回False
作为第一行代码


现在重试您的
weave
code…

似乎找不到g++命令。您是否安装了gcc?如果是,则检查PATH环境变量。注意:对于MinGW64,还需要将“mingw32”设置为编译器定义。它只是告诉distutils如何调用编译器命令。。。