当前位置: 首页 > 知识库问答 >
问题:

从git子模块导入(重要错误)

梁宏才
2023-03-14

当我以我认为应该做的方式从子模块导入时,我会得到一个重要错误

我有以下套餐:

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

\uuuu init\uuuu是空的。

我很难把东西放在正确的地方,或者很难正确地组织它们。当,从pkg目录,我尝试

from pkg import foodle

我得到"重要错误:不能导入名称ftdle"

从子模块中排列文件和导入的正确方法是什么?我已经阅读了如何从git子模块导入python文件;我尝试了在组件/__init__. py和cow.py中扰乱sys.path,但没有成功。这个包是在git上共享的,所以需要便携。组件实际上是git子模块。

将components import*中的放入components/中的\uuuu init\uuuu py似乎有效,但我认为通常该文件保持为空。


共有1个答案

郤令
2023-03-14

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

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

import pkg
from pkg.cow import foodle
from pkg.components import foodle
from pkg.components.components import foodle
 类似资料:
  • 我在Pycharm中有一个python项目,其中有一个嵌套的Git子模块。以下是文件夹结构: 中的导入结构如下: 但是,Pycharm没有意识到这一点,而是希望我拥有以下内容: 这是有问题的,因为我不想更改中的所有导入(这似乎不是一个好的实践,也不可扩展),而且中有破折号,这对于导入来说不是有效的Python语法(我无法重命名repo)。 我还需要一种从我的代码中导入的方法。像这样的东西: 但当然

  • 我有一个使用git子模块的项目。在我的python文件中,我想在子模块项目中使用另一个python文件中的函数。 为了工作,我必须将init.py文件添加到路径中的所有子文件夹中。我的文件夹树如下: 有没有办法让它在不接触mygitsubmodule的情况下工作? 谢谢

  • 我有一个这样的目录: 我可以这样导入父模块: 那么,既然我已经有了父模块,那么获取子模块的最佳方法是什么?我已经尝试了,,等。 有什么建议吗? 谢谢

  • (我意识到在与python相对导入相关的StackOverflow上有很多问题;我也怀疑我做得完全错误;但不管怎样,还是这样吧……) 我有一个python项目(mysubmod)组织如下: 重要的是: /models/hello.py导入lib.foobar 然后我有了第二个项目(myproj),我将mysubmod作为git子模块导入其中;myproj现在组织如下- 哪里: scripts/te

  • 问题内容: 我想将子文件夹导入为模块。因此,每个子文件夹都包含一个。我的文件夹结构是这样的: 在我的主脚本中,我导入 在此工厂文件中,我包括以下子模块: 如果我调用我的foofactory会收到错误消息,则该python无法导入子模块foo1和foo2: 问题答案: 无需与您或此处混淆。 为了在包中正确使用绝对导入,您还应该包括“ root”包名,例如: 或者您可以使用相对导入:

  • 我一直在努力与Python上的相对导入。 我的项目结构是这样的: 我想先将一组函数从位于