擅长:python、mysql、java
<h3>免责声明:</h3>
<ul>
<li><p>您的里程数可能会有所不同,我意识到我的答案并不能完全回答这个问题(使用<strong>相对导入)。我是罪魁祸首(我的错)</p>
</li>
<li><p>为我辩护:谷歌<em>python避免相对导入</em>返回540k次点击</p>
</li>
</ul>
<p>我通常避免相对导入,因为它们似乎在这类事情上有太多的特殊情况,我非常喜欢在适当的时候直接将python文件作为脚本运行</p>
<p>例如,我的<code>constants.py</code>文件可以作为脚本运行—它将<code>breakpoint()</code>,我可以检查它的内容,其中很多内容来自环境变量</p>
<p>假设<code>project</code>的<em>父</em>目录位于Python路径中,我只会使用<code>from project.package.submoduleA import submoduleAfunction</code>。这在所有情况下都有效</p>
<p>(我发现显式导入的另一个好处是,我想将我的顶级包(<code>myproject</code>重命名为<code>myproject2</code>)。所有内容都显式允许我快速<code>sed</code>更改。请注意下面评论中Wim的评论)</p>