You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python模块导入报错:实现script.py与helper.py独立运行的方案

模块导入冲突解决方案需求

项目目录结构

MyProject --- script.py
             |
              - helpers --- __init__.py
                           |
                            - class_container.py
                           |
                            - helper.py

各文件代码

class_container.py

class MyClass:
    pass

helper.py

from class_container import MyClass
def func():
   # some code using MyClass

script.py

from helpers.helper import func

运行错误情况

  • 直接运行script.py时,报错:
ModuleNotFoundError: No module named 'class_container'
  • 修改helper.py导入语句为from helpers.class_container import MyClass后,运行script.py正常,但直接运行helper.py时报错:
ModuleNotFoundError: No module named 'helpers'

需求

无需修改任何模块代码,实现同时独立运行script.py和helper.py,且不采用修改sys.path的方案。

解决方案

方案1:使用-m参数以模块形式运行脚本

在MyProject目录下执行以下命令:

  • 运行script.py:
python -m script
  • 运行helper.py:
python -m helpers.helper

这种方式会自动将MyProject目录加入Python的模块搜索路径,让两种导入逻辑都能正常工作。

方案2:设置PYTHONPATH环境变量

将MyProject目录的绝对路径添加到PYTHONPATH环境变量中:

  • Linux/macOS终端:
export PYTHONPATH="/path/to/MyProject:$PYTHONPATH"
  • Windows命令提示符:
set PYTHONPATH=C:\path\to\MyProject;%PYTHONPATH%
  • Windows PowerShell:
$env:PYTHONPATH = "C:\path\to\MyProject;" + $env:PYTHONPATH

设置完成后,无论在哪个目录下,直接运行python script.py或python helpers/helper.py都能正常执行。

内容的提问来源于stack exchange,提问作者UpTheIrons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:45:34