Python编织编译错误



我刚开始编织,不知道是什么导致了这个错误。该错误也发生在其他代码示例上,因此它不是特定的代码。我使用的是windows 7和python 2.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:Python27libscipyweaveinline_tools.py", line 366, in inline
    **kw)
  File "C:Python27libscipyweaveinline_tools.py", line 496, in compile_function
    verbose=verbose, **kw)
  File "C:Python27libscipyweaveext_tools.py", line 373, in compile
    verbose=verbose, **kw)
  File "C:Python27libscipyweavebuild_tools.py", line 279, in build_extension
    setup(name=module_name, ext_modules=[ext],verbose=verb)
  File "C:Python27libsite-packagesnumpydistutilscore.py", line 169, in setup
    return old_setup(**new_attr)
  File "C:Python27libdistutilscore.py", line 166, in setup
    raise SystemExit, "error: " + str(msg)
CompileError: error: Command "g++ -m64 -g -shared c:usersownerappdatalocaltempscipy-owner-tbcanypython27_intermediatecompiler_e3b0c44298fc1c149afbf4c8996fb924Releaseusersownerappdatalocaltempownerpython27_compiledsc_cb1945ea063627b5855c13eafebb07042.o c:usersownerappdatalocaltempscipy-owner-tbcanypython27_intermediatecompiler_e3b0c44298fc1c149afbf4c8996fb924Releasepython27libscipyweavescxxweave_imp.o -LC:Python27libs -LC:Python27PCbuildamd64 -lpython27 -lmsvcr90 -o c:usersownerappdatalocaltempownerpython27_compiledsc_cb1945ea063627b5855c13eafebb07042.pyd" failed with exit status 1

weave.test()没有发现任何错误,但它只运行了146个测试和文档http://docs.scipy.org/doc/scipy/reference/tutorial/weave.html说应该跑180。

>>> weave.test()
Running unit tests for scipy.weave
NumPy version 1.9.1
NumPy is installed in C:Python27libsite-packagesnumpy
SciPy version 0.15.1
SciPy is installed in C:Python27libscipy
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代码时遇到了问题。这个问题可能是由(Visual Studio)预编译的Python与MinGW编译的weave代码混合引起的。

当时,我使用的是MinGW64编译器(MinGW32也能正常工作),并开发了一个三步解决方案。

1) 在<pythondir>libs目录中,删除MSVCR运行库文件,其名称应类似于libmsvcr100.alibmsvcr100d.a(或其中包含90或任何其他版本号)。同时删除文件夹中创建日期相同的任何文件(首次尝试使用编织)。

2) 在(可能尚未创建)文件<pythondir>Libdistutilsdistutils.cfg<pythondir>Libsite-packagesnumpydistutilsdistutils.cfg中,我包含了编译器定义

[build]
compiler = mingw32

也许您需要根据您的编译器类型进行调整。

3) 在<pythondir>Libsite-packagesnumpydistutilsmingw32ccompiler.py中,在第329行左右出现了真正的"破解":

在CCD_ 10的功能实现中,仅将CCD_。

现在重试您的weave代码。。。

相关内容

最新更新