【问题标题】:Creating a single pyd with cython from a python package keeping package hierarchy [duplicate]从保持包层次结构的python包中使用cython创建单个pyd [重复]
【发布时间】:2016-03-21 18:50:07
【问题描述】:

我想知道是否有一种方法可以使用 cython 从纯 python 包创建单个 .pyd,从而保持包层次结构。

我的意思是如果包名是 A 并且里面有模块 B 和 C(以及它们各自的文件夹和初始化文件)

A/
----> __init__py
----> A.py
----> B/
      ----> __init__.py
      ----> B.py
      ----> something.py
----> C/
      ----> __init__.py
      ----> C.py

我能否生成一个允许我执行类似操作的 A.pyd 文件

import A.C
import A.B.something

此时我知道我可以使用 .pyx 文件和 include 语句获取单个 pyd 文件,但这种替代方案不尊重包层次结构。

任何帮助将不胜感激

【问题讨论】:

    标签: python cython


    【解决方案1】:

    您可以在代码中创建module 对象;见this question

    您可以使用您的includes,然后在代码中创建模块对象。那应该允许您导入子包。如果您得到一个可行的解决方案,请在此处发布。这将是一个巧妙的技巧。

    如果您想知道为什么要将模块用作命名空间而不是命名空间的类,这也很有趣,因为它们会立即起作用,并且可以通过调用代码为您提供非常相似的 API。

    【讨论】:

      猜你喜欢
      • 2019-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 2018-02-13
      • 1970-01-01
      • 2016-10-17
      相关资源
      最近更新 更多