我有一个安装了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(),
),\
谢谢
答案 0 :(得分:0)
经过数小时的调试,我找出了问题所在。在模块中添加__init__.pxd
似乎已经解决了该问题。为了将来参考,请注意setuptools是否实际找到pxd
文件。