<p>首先,由于您还没有具体说明您得到的是哪个lint错误,所以我假设这是因为您在<code>sys.path.append</code>之后有一个导入。在</p>
<p>最干净的方法是相对进口或绝对进口。在</p>
<p>使用绝对导入:</p>
<pre><code>from parent_path.codeHelpers import completion_message
</code></pre>
<p>使用相对导入:</p>
^{pr2}$
<p>对于原始问题中列出的简单示例,这应该是所需的全部内容。它很简单,是Python式的,很可靠,它解决了皮棉问题。在</p>
<p>您可能会发现自己处于这样一种情况:上面的方法对您不起作用,并且仍然需要<code>sys.path</code>操作。一个缺点是您的IDE可能无法解析从新路径到模块的导入,从而导致诸如自动代码完成不起作用以及将导入标记为错误等问题,即使代码可以正常运行。在</p>
<p>如果您发现仍然需要使用<code>sys.path</code>,并且希望避免这种情况下的lint错误,请创建一个新模块,并在其中执行<code>sys.path</code>操作。然后确保在任何需要修改的<code>sys.path</code>的模块之前导入新模块。在</p>
<p>例如:</p>
<p>本地_导入.py在</p>
<pre><code>"""Add a path to sys.path for imports."""
import os
import sys
# Get the current directory
current_path = os.path.dirname(__file__)
# Get the parent directory
parent_path = os.path.dirname(current_path)
# Add the parent directory to sys.path
sys.path.append(parent_path)
</code></pre>
<p>然后在目标文件中:</p>
<pre><code>import local_imports # now using modified sys.path
from codeHelpers import completion_message
</code></pre>
<p>这样做的缺点是需要在每个<code>child_folder</code>中包含<code>local_imports.py</code>,如果文件夹结构发生变化,则必须修改每个<code>local_imports</code>文件。在</p>
<p>当您需要在包中包含外部库(例如在<code>libs</code>文件夹中)而不需要用户自己安装libs时,这种模式才是真正有用的。在</p>
<p>如果您将此模式用于<code>libs</code>文件夹,则可能需要确保您所包含的库优先于已安装的库。在</p>
<p>为此,改变</p>
<pre><code>sys.path.append(custom_path)
</code></pre>
<p>到</p>
<pre><code>sys.path.insert(1, custom_path)
</code></pre>
<p>这将使您的自定义路径成为python解释器要检查的第二个位置(第一个仍然是<code>''</code>,这是本地目录)。在</p>