cython compiles but no pyd files are generated

2019-07-24 11:39发布

I tried to run a python code, say myfile.py (also tried to rename it as myfile.pyx) as follows:

import pyximport
pyximport.install(setup_args={"script_args":["--compiler=mingw32"]},      
    reload_support=True)

import myfile
myfile.mycode()

I am using PyCharm. The code seems to have run fine without any error and even gave me correct results on the Python Console within PyCharm.

However no pyd (or pxd) files were generated. How can I know if my code (myfile.mycode()) ran via Cython or via regular Python?

I am using Python 3.4, Cython 0.21.2.

Thanks

1条回答
贪生不怕死
2楼-- · 2019-07-24 12:19

When using pyximport it will generate a temporary pyd file which is not in the working directory. You probably want to build a setup.py which will look something like:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [Extension('myfile',
                         ['myfile.pyx'],
                        )]
setup(
name = 'myfile',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)

which you can compile using:

python setup.py build_ext -i clean
查看更多
登录 后发表回答