从git子模块导入(ImportError)

CPBL

我得到一个ImportError当我从一个子模块中我想一个应该做的方式进口。

我有以下软件包:

pkg/
  __init__.py
  cow.py
  pizza.py
  pkg.py
  components/
    components.py
    otherstuff.py
    __init__.py

cow.py:

print "Hello"
from components import foodle

components.py:

foodle=5

并且__init__的为空。

我在将事情放置在正确的位置或正确地组织它们时遇到了麻烦。当从pkg目录尝试

from pkg import foodle

我收到“ ImportError:无法导入名称foodle”

安排文件和从子模块导入的正确方法是什么?我已经阅读了如何从git子模块导入python文件我尝试将sys.pathincomponents/__init__.py和in弄乱,cow.py无济于事。这个包是在git上共享的,因此它需要可移植。components实际上是一个git子模块。

from components import *__init__py在组件/似乎工作,但我通常认为文件保持为空。

CPBL

我所缺少的元素是(这些是我的解释,可能仍然不正确):

  • 如果是包(带有__init__.py),请从pkg文件夹外部而不是内部使用。也就是说,很难同时使用两种方法(从外部调用和从内部使用模块),所以不要这样。这是解决我的问题的主要见解。

  • 用于获取子模块和子包的点表示法既适用于文件,也适用于其中的文件夹pkg因此,从其他文件夹中,但pkg在我的路径中,我可以调用以下任何一个:

    import pkg
    from pkg.cow import foodle
    from pkg.components import foodle
    from pkg.components.components import foodle
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章