【发布时间】:2011-11-09 04:57:59
【问题描述】:
我正在用 cython 编写一些代码,并且我有一些 "Packages “within” modules"。 ——这实际上是我的问题的后续,结构应该是一样的。问题是这是cython,所以我处理的是.so而不是.py。
拥有__init__.so 的工作原理是,
import mystuff
会起作用,但它似乎掩盖了下面的所有子包。也就是说,
import mystuff.test.test1
不会。我收到 ImportError: No module named ... 错误。
我该如何解决这个问题?在将其编译为.c 之前,我需要向.pyx 添加一些内容吗?或者我可以将__init__.so 重命名为其他名称,并以某种方式将其拉入__init__.py(注意,__init__.py 仍需要与.so 一起存在以显示它是一个包)?或者别的什么。
更新:__path__ 属性未为 .so 包定义...
好的,我有一个想法,也许我可以通过操作包的__path__ 属性来解决这个问题。有趣的是,这是为.py 包定义的,但会导致.so 的错误。这不是一个解决方案,但我想知道它是否是问题的根源。
【问题讨论】:
标签: python module python-3.x package cython