来自不同已安装软件包的pxd软件包定义

时间:2020-10-12 08:38:23

标签: cython setuptools python-3.8

我有一个安装了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(),
                ),\

谢谢

1 个答案:

答案 0 :(得分:0)

经过数小时的调试,我找出了问题所在。在模块中添加__init__.pxd似乎已经解决了该问题。为了将来参考,请注意setuptools是否实际找到pxd文件。