我使用以下命令将现有项目作为子模块添加到我的项目中。
git submodule add https://github.com/...
但是,子模块根目录不包含__init__.py
文件。是否可以从该子模块导入功能而无需对其进行更改?
.gitmodules的内容:
[submodule "name"]
path = name
url = https://github.com/name
答案 0 :(得分:1)
我认为解决方案是将子模块添加到项目中,然后将符号链接添加到子模块旁边的实际包中(或者放置它的位置)
所以你有
project
- submodule
- package
- setup.py
- my_awesome_script.py
- package (symbolic link to submodule/package)
然后你可以通过符号链接导入它。
import package
package.work_your_magic()
答案 1 :(得分:-1)
您只需抓取子模块的内容:
git submodule init
git submodule update
这会将子模块的所有内容签出到子模块文件夹下的工作目录中。
但是,子模块根目录不包含 init .py文件。是否可以从该子模块导入功能而无需对其进行更改?
在这种情况下,您必须使用subtree
而不是子模块。子树和子模块之间的主要区别在于子树内容是在根级别进行管理的,因此您可以使用checkout命令检查项目中任何路径中的任何内容,而在子模块中则不能,并且您需要复制它。