擅长:python、mysql、java
<p>脚本或模块可以导入</p>
<ol>
<li>在系统路径上,或</li>
<li>作为导入脚本/模块的同一个包的一部分。在</li>
</ol>
<p>对于模块,这些规则毫无例外地适用。对于脚本,规则是适用的,但问题是,在默认情况下,当您运行脚本时,它不被视为包的一部分。在</p>
<p>这意味着默认情况下,脚本只能导入系统路径上的模块。默认情况下,路径包含当前目录,因此如果您运行脚本,它可以导入同一目录中的模块或作为子目录的包。但就这样。脚本在目录树中没有“它在哪里”的概念,因此它不能执行任何需要有关封闭目录的特定相对路径信息的导入。这意味着您不能“从父目录”或“从同级目录”导入内容。只有在系统路径上时,才能导入这些目录中的内容。在</p>
<p>{1>如果你想在一个包中添加一个属性。见<a href="https://stackoverflow.com/questions/11536764/attempted-relative-import-in-non-package-even-with-init-py/11537218#11537218">this previous question</a>。然后,通常可以从该脚本中使用显式的相对导入(例如,<code>from ...sub2 import mod2</code>)。在</p>