【问题标题】:Package pxd defintions from different installed packages来自不同已安装软件包的软件包 pxd 定义
【发布时间】:2020-10-12 08:38:23
【问题描述】:

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

谢谢

【问题讨论】:

    标签: cython setuptools python-3.8


    【解决方案1】:

    经过数小时的调试,我发现了路径问题。在模块中添加__init__.pxd 似乎已经解决了这个问题。请注意 setuptools 是否真正找到 pxd 文件以供将来参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 2017-05-26
      • 2018-10-31
      • 2021-09-13
      • 2019-12-16
      • 2021-11-15
      • 1970-01-01
      相关资源
      最近更新 更多