我创建了一个小框架,我的目录结构就是这个
myframework -> contrib -> jinja2
myframework -> contrib -> session
myframework -> start.py
问题是针对contrib下的包,实际上jinjia2就像session有子目录而且在jinja2的__init__.py
中有一些相对于根位置的导入
所以现在为了使它工作,我必须将jinja2包放入root目录,有一种方法可以使用
答案 0 :(得分:3)
如果您要重新设计已使用相对导入的包结构,那么您将拥有hard time。只需按照设计方式和多个包使用包,只需确保它们都在PYTHONPATH中。 relative imports在以下目录结构和引用机制下工作得最好。只需确保您的模块以类似的方式访问文件。