擅长:python、mysql、java
<p>Import语句依赖于执行的主脚本,或者更确切地说,执行主脚本的目录将自动添加到<code>sys.path</code>中,Python使用该目录在导入时搜索模块。在</p>
<p>因此,如果您运行<code>test.py</code>脚本,最终导入<code>directory_1.directory_1_1.test_1_1</code>,如果该脚本有<code>import directory_2.directory_2_1.test_1_1</code>则一切正常,但如果其他脚本从其他地方调用它,它将无法找到它。在</p>
<p>因此,在制作相互依赖的模块时,因为您无法知道谁将导入这些模块,所以始终使用相对路径。例如,<code>test_2_2.py</code>可以导入它的<code>test_1_1.py</code>'表亲':<code>from ....directory_1.directory_1_1 import test_1_1</code>(相对名遵循与路径名相似的规则,只是不需要分隔符,所以<code>.</code>是当前路径,<code>..</code>是上一级的路径,<code>...</code>是上两级的路径,依此类推)。在</p>
<p>注意:这些类型的多级相对导入只在包中使用时才起作用,您不能使用它来引用正在运行的脚本(当您知道所有东西从何处运行时,为什么还要这样做呢?)。所有目录都需要有<code>__init__.py</code>,这样Python解释器才能将其视为<em>包</em>。在</p>