从Python中的姐妹子目录导入?

Eli*_*Eli 10 python import

所以,我在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是脚本(当每个分别导入 - 未导入时)如何变化?

Amb*_*ber 6

最简单的解决方案是将包含repo在您的目录中PYTHONPATH,然后只使用绝对路径导入,例如import repo.sub2.mod2依此类推.

任何其他解决方案都会涉及一些hackery,如果你想要它涵盖你从任意目录直接调用python文件作为脚本的情况 - 最有可能是sys.path为了有效地完成与设置相同的事情PYTHONPATH,但没有必要用户设置它.

  • 我很喜欢编辑PYTHONPATH,但有没有一种标准的方法来强制执行此操作?我不希望repo的所有新用户都必须手动进入并更新他们的PYTHONPATH. (2认同)