Python 导入缺少_init的子模块__

Python 导入缺少_init的子模块__,python,git,python-2.7,Python,Git,Python 2.7,我使用以下命令将现有项目作为子模块添加到我的项目中 git submodule add https://github.com/... 但是,子模块根目录不包含\uuuu init\uuuu.py文件。是否可以从该子模块导入功能而不进行更改 .git模块的内容: [submodule "name"] path = name url = https://github.com/name 您只需获取子模块的内容: git submodule init git submodule update 这会

我使用以下命令将现有项目作为子模块添加到我的项目中

git submodule add https://github.com/...
但是,子模块根目录不包含
\uuuu init\uuuu.py
文件。是否可以从该子模块导入功能而不进行更改

.git模块的内容:

[submodule "name"]
path = name
url = https://github.com/name

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

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


但是,子模块根目录不包含init.py文件。是否可以从该子模块导入功能而不进行更改

是的
在这种情况下,必须使用
子树
而不是子模块。子树和子模块之间的主要区别在于子树内容是在根级别管理的,因此您可以使用checkout命令从项目中的任何路径签出任何内容,而在子模块中则无法签出,您需要复制它。

我相信解决方案是将子模块添加到项目中,然后在子模块旁边的实际包中添加一个符号链接(或者在任何有意义的地方)

所以你会有

project
  - submodule
    - package
    - setup.py
  - my_awesome_script.py
  - package (symbolic link to submodule/package)
然后您可以通过符号链接导入它

import package

package.work_your_magic()

来源:

我理解这一部分,但它解决不了任何问题。项目通常在根目录中有setup.py,在子目录中有实际的源代码。