问题描述
我有一个安装了cython扩展的python模块。现在,我正在编写第二个(不同的)cython模块,该模块想从已安装的cython模块导入扩展。但是,它找不到第一个模块的定义文件。
第一个模块的.../python3.8/site-packages/plexim[version]/EGG-INFO/SOURCES.txt
如下:
setup.py
...
plexsim/models.cpp
plexsim/models.pxd
...
pxd
与模块包装在一起时看起来不错。
在另一个模块中,我想从models.pxd
导入pxd。但是,当我尝试安装其他扩展模块时,执行此操作时找不到扩展定义
from plexsim.models cimport *
如何正确打包数据,以便其他模块从已安装的模块中看到定义?
我的setup.py
看上去很像
setup(
package_dir = {"" : "imi"
},namespace_packages = find_namespace_packages (include = ["imi.*"]),package_data = {"": "*.pxd *.pyx".split(),ext_modules = cythonize(
exts,language_level = 3,compiler_directives = cdirectives,nthreads = mp.cpu_count(),),\
谢谢
解决方法
经过数小时的调试,我找出了问题所在。在模块中添加__init__.pxd
似乎已经解决了该问题。为了将来参考,请注意setuptools是否实际找到pxd
文件。