使用git子模块导入python项目
(我意识到在与python相对导入相关的StackOverflow上有很多问题;我也怀疑我做得完全错误;但不管怎样,还是这样吧……) 我有一个python项目(mysubmod),组织如下:使用git子模块导入python项目,python,Python,(我意识到在与python相对导入相关的StackOverflow上有很多问题;我也怀疑我做得完全错误;但不管怎样,还是这样吧……) 我有一个python项目(mysubmod),组织如下: /__init__.py /lib - /__init__py - /foobar.py /models - /__init__.py - /hello.py 重要的是: /models/hello.py导入lib.foobar /models/hello.py有一个运行一些测试的主块 然后我有了第二
/__init__.py
/lib
- /__init__py
- /foobar.py
/models
- /__init__.py
- /hello.py
重要的是:
- /models/hello.py导入lib.foobar
- /models/hello.py有一个运行一些测试的主块
/mysubmod
/scripts
- /__init__.py
- /__test.py
其中:
- scripts/test.py导入mysubmod.models.hello
- 使用git子模块将mysubmod导入myproj,使其“正常工作”
- 继续能够独立开发mysubmod(即将脚本作为文件而不是模块运行)
- 添加一个顶级包mysubmod(例如“helloworld”)
- 将mysubmod作为子模块导入myprod后,象征性地将helloworld包链接到myprod根目录('ln-s mysubmod/helloworld helloworld')
这样,无论您是作为子模块使用子模块还是单独使用子模块,都可以维护包结构。您也可以在启动
myproj
时将mysubmod
添加到sys.path
。然后mysubmod/models/hello.py
将找到lib.foobar
是的,这似乎是一个更好的解决方案。提供了一个示例。