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

如何解决虚拟环境下子目录运行代码出现ModuleNotFoundError的问题

报错问题解决方案

1. 先确认执行脚本时已正确激活虚拟环境

虚拟环境不会自动全局生效,在子目录执行脚本前必须先激活主目录下的虚拟环境:

  • Windows系统(PowerShell):
    先切换到my project根目录,执行 .\venv\Scripts\Activate.ps1,如果是CMD环境执行 .\venv\Scripts\activate.bat,激活完成后再进入click目录运行脚本即可
  • Mac/Linux系统:
    先切换到my project根目录,执行 source venv/bin/activate,激活完成后再进入click目录运行脚本即可

验证激活是否成功:激活后终端前缀会出现(venv)标识,执行pip list可看到你安装的所有依赖,确认需要的包都在列表中;也可执行which python(Mac/Linux)/where python(Windows),确认返回的Python路径指向my project目录下的venv文件夹内的解释器。

2. 激活后仍报错的路径修复方案

如果激活虚拟环境后还是报错,大概率是项目自定义模块的导入搜索路径不匹配,可任选以下一种方法解决:

  • 临时添加项目根目录到Python搜索路径
    在click目录下执行脚本前,先运行对应命令:
    • Mac/Linux:export PYTHONPATH="/你的/my project目录的绝对路径:$PYTHONPATH"
    • Windows PowerShell:$env:PYTHONPATH = "C:\你的\my project目录的绝对路径;$env:PYTHONPATH"
  • 入口文件固定路径配置
    在你要运行的脚本最顶部添加以下代码,自动将项目根目录加入运行时搜索路径:
    import sys
    from pathlib import Path
    # 把当前文件的上两级目录(即my project根目录)加入搜索路径
    sys.path.append(str(Path(__file__).parent.parent.resolve()))
    

3. IDE运行的额外配置

如果你使用PyCharm、VSCode等IDE运行脚本,需要额外做两个配置:

  • 在IDE的项目解释器设置中,选择my project目录下虚拟环境内的Python解释器
  • 将my project目录标记为「源代码根目录(Sources Root)」

内容的提问来源于stack exchange,提问作者B A C H A S H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:18:04