繁体   English   中英

cython setup.py给出.o而不是.dll

[英]cython setup.py gives .o instead of .dll

我是cython的新手,如果我在这里缺少明显的内容,请原谅我。 我正在尝试构建c扩展以在python中使用以增强性能。 我有带有一堆功能的fc.py模块,并尝试使用dsutils通过cython生成.dll并在win64上运行:

c:\\python26\\python c:\\cythontest\\setup.py build_ext --inplace

我在C:\\ Python26 \\ Lib \\ distutils中有dsutils.cfg。 根据需要,disutils.cfg具有以下配置设置:

[build]
compiler = mingw32

我的startup.py看起来像这样:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension('fc', [r'C:\cythonTest\fc.pyx'])]

setup(
  name = 'FC Extensions',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)

命令行输出如下所示:

C:\python26\python C:\cythontest\setup.py build_ext --inplace
running build_ext
cythoning C:\cythonTest\fc.pyx to C:\cythonTest\fc.c
building 'FC' extension
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -Ic:\python26\include -Ic:\pytho
n26\PC -c C:\cythonTest\fc.c -o c:\cythontest\fc.o

我具有用于目标/主机amdwin64类型构建的最新版本mingw。 我拥有适用于win64的python26的最新版本的cython。 Cython确实为我提供了一个没有错误的fc.c文件,只有一些关于类型转换的警告,一旦我正确就将处理。 此外,它还会生成fc.def和fc.o文件,而不是提供.dll。 我没有错误。 我在线程上发现它将根据需要自动创建.so或.dll,但这没有发生。

最后,我能够为win64构建扩展。 显然,如果您具有VC 2010 Express,则可以调整显示以使用msvc9compiler编译模块。 详细信息可以在这里找到。 非常感谢nukeitdotorg的同事提出这个建议,也感谢JF Sebastian的建议。

您是否尝试使用

python setup.py build --compiler=mingw32

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM