![](/img/trans.png)
[英]Import method from Python submodule in __init__, but not submodule itself
[英]Import submodule with missing __init__
我使用以下命令将现有项目作为子模块添加到我的项目中。
git submodule add https://github.com/...
但是,子模块根目录不包含__init__.py
文件。 是否可以在不进行更改的情况下从此子模块导入功能?
.gitmodules的内容:
[submodule "name"]
path = name
url = https://github.com/name
我相信解决方案是将子模块添加到您的项目中,而不是在子模块旁边的实际包中添加符号链接(或将其放置在有意义的位置)
所以你有
project
- submodule
- package
- setup.py
- my_awesome_script.py
- package (symbolic link to submodule/package)
那么您可以通过符号链接将其导入。
import package
package.work_your_magic()
您只需要获取子模块的内容:
git submodule init
git submodule update
这会将所有子模块的内容签出到子模块文件夹下的工作目录中。
但是,子模块根目录不包含init .py文件。 是否可以在不进行更改的情况下从此子模块导入功能?
在这种情况下,您将不得不使用subtree
而不是子模块。 子树和子模块之间的主要区别在于,子树的内容是在根级别上管理的,因此,在您不能使用的子模块中,您将能够使用checkout命令从项目中任何路径中检出任何内容,并且需要将其复制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.