无法在Python中导入我的Cython模块,为什么不工作?
我创建了一个Cython文件,并把它放在一个和其他Python包分开的地方,项目的目录结构如下:
cython_code
cython_file.pyx
setup.py
program
main.py
我是在PyCharm里安装的Cython。构建是通过以下命令完成的:
python setup.py build_ext --inplace
构建后生成了相应的.pyd和.c文件,还有一个构建文件夹。
但是不知道为什么,我无法导入这个模块。这是导入模块的代码
我还尝试把.pyx文件放在项目的根目录下并在那里编译,但遇到同样的问题,简单的import时(找不到Cython模块)。
这是我的setup.py文件:
from setuptools import setup
from Cython.Build import cythonize
import numpy
setup(
ext_modules=cythonize('my_cython.pyx'),
include_dirs=[numpy.get_include()]
)
请帮我解决这个问题...
1 个回答
0
.pyx 文件是一个源文件,用来生成实际的扩展代码文件(这个文件的后缀会是 .so 或 .dll);在运行时,Python 不会直接使用这个文件。为了让你的包可以在 Python 中被导入,你需要做两件事中的一件:第一,运行 pip install .
来安装构建好的文件;第二,找到生成的 .so 文件,并确保它在你的 PYTHONPATH 中。
如果你是刚开始做项目,可以参考 Cython 文档中的步骤。