所以,我在Stack Overflow上看到了一些类似的问题,但似乎没有解决我的问题或一般情况.所以,希望这个问题可以解决这个问题,并且让我头痛不已.我有一个形式的git repo:
repo/
__init__.py
sub1/
__init__.py
sub1a/
__init.py
mod1.py
sub2/
__init__.py
mod2.py
Run Code Online (Sandbox Code Playgroud)
如何从mod1.py导入mod2.py,反之亦然,这取决于mod1.py或mod2.py是脚本(当每个分别导入 - 未导入时)如何变化?
最简单的解决方案是将包含repo在您的目录中PYTHONPATH,然后只使用绝对路径导入,例如import repo.sub2.mod2依此类推.
任何其他解决方案都会涉及一些hackery,如果你想要它涵盖你从任意目录直接调用python文件作为脚本的情况 - 最有可能是sys.path为了有效地完成与设置相同的事情PYTHONPATH,但没有必要用户设置它.