繁体   English   中英

导入缺少__init__的子模块

[英]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()

资料来源: https : //stackoverflow.com/a/15676423/5784822

您只需要获取子模块的内容:

git submodule init
git submodule update

这会将所有子模块的内容签出到子模块文件夹下的工作目录中。


但是,子模块根目录不包含init .py文件。 是否可以在不进行更改的情况下从此子模块导入功能?

是的

在这种情况下,您将不得不使用subtree而不是子模块。 子树和子模块之间的主要区别在于,子树的内容是在根级别上管理的,因此,在您不能使用的子模块中,您将能够使用checkout命令从项目中任何路径中检出任何内容,并且需要将其复制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM