小编5ar*_*5ar的帖子

Git子模块的本地导入错误 - Python

我正在开发一个 Python 项目(项目 A),该项目使用 GitHub 中的另一个项目(项目 B)。我不是 Git 专家,所以经过快速研究,我发现我应该使用项目B作为git submodule.

所以,我cd project_A_root做了以下事情:

git submodule add project_B
git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)

现在,我的项目结构如下所示:
在此输入图像描述

main.py文件中,我从do_something.py导入了一个方法。

主要.py

from ProjectB.do_something import foo
Run Code Online (Sandbox Code Playgroud)

但是,do_something.py文件从util.py文件导入了一个方法,这就是问题发生的地方。

do_something.py

from util import bar
Run Code Online (Sandbox Code Playgroud)

项目 B是一个子模块,它假定项目 B目录是项目的根目录,因此导入do_something.pyutil.py的方法时未指定包,并且出现错误:

ImportError: cannot import name 'bar' from 'util'
Run Code Online (Sandbox Code Playgroud)

相反,它应该像这样导入:

from ProjectB.util import bar
Run Code Online (Sandbox Code Playgroud)

我不确定处理这个问题的最佳方法是什么。我已经手动修复了子模块中的导入,但我无法将这些更改推送到 Git,因为这不是子模块的工作方式,因此如果有人想要克隆Project A,他们也必须手动修复导入。 …

python git importerror git-submodules

5
推荐指数
1
解决办法
2721
查看次数

标签 统计

git ×1

git-submodules ×1

importerror ×1

python ×1