gpt4 book ai didi

python - __init__.so(而不是 __init__.py)掩码子包

转载 作者:太空狗 更新时间:2023-10-30 03:06:33 29 4
gpt4 key购买 nike

我正在用 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 一起存在以显示它是一个包)?或者别的东西。


更新:未为 .so 包定义 __path__ 属性 ...

好吧,我想也许我可以通过操纵 __path__ 来解决这个问题包的属性。有趣的是,这是为 .py 包定义的,但会导致 .so 的错误。这不是解决方案,但我想知道这是否是问题的根源。

最佳答案

让您的 Cython 代码位于与 __init__.py 不同的文件中,并将其导入普通 python __init__.py 请参阅我对您上一个问题的回答。

关于python - __init__.so(而不是 __init__.py)掩码子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com