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

如何配置VS Code的Python REPL,使其自动识别工作区模块以解决ModuleNotFoundError

如何配置VS Code的Python REPL,使其自动识别工作区模块以解决ModuleNotFoundError

太懂这种烦躁了——从PyCharm转VS Code,本来觉得这种基础模块导入应该是开箱即用的,结果卡在这里确实闹心。结合你在远程SSH环境下的情况,咱们一步步排查和解决:

你的问题梳理

你在VS Code远程SSH环境里,Python REPL能正确识别当前工作目录,但就是导不了同目录下的src模块;设置了.env里的PYTHONPATH=${workspaceFolder},重启VS Code也没生效,甚至dotenv加载的是VS Code Python扩展自带的.env,不是你项目根目录的文件。临时手动加sys.path能解决,但这肯定不是长久之计。

针对性解决方案

1. 先搞定.env的加载问题(核心症结)

你发现find_dotenv()指向了扩展目录的.env,这说明VS Code没优先加载你项目根目录的配置文件。解决这个:

  • 确保你的.env文件确实在工作区根目录,不要放在子文件夹里。
  • 打开VS Code设置(快捷键Ctrl+,),搜索python.envFile,明确设置为你的项目根目录.env路径:
    "python.envFile": "${workspaceFolder}/.env"
    
    远程环境下,这种绝对路径配置比默认的自动查找更可靠。
  • 然后修正.env里的PYTHONPATH写法,远程环境下可以用绝对路径避免变量解析问题:
    PYTHONPATH=${workspaceFolder}
    # 或者直接写远程服务器上的工作区绝对路径,比如:
    # PYTHONPATH=/home/your-username/your-project-folder
    

2. 给REPL配置自动启动命令(兜底方案)

如果.env的方式还是不生效,咱们直接让REPL启动时自动把工作区加入Python路径,不用手动敲代码:

  • 打开VS Code的settings.json(通过Ctrl+Shift+P输入Preferences: Open Settings (JSON)打开),添加以下配置:
    "python.REPL.startupCommands": [
        "import sys, os; sys.path.append(os.getcwd())"
    ]
    
    这段代码会在每次REPL启动时自动执行,相当于帮你自动完成临时 workaround 的操作,一劳永逸。

3. 检查远程环境的Python解释器

确保你在远程SSH窗口里选的Python解释器是正确的——有时候VS Code会默认用系统Python,而不是你创建的虚拟环境。可以通过左下角的Python解释器选择器切换,选好后重启REPL。

4. 解决dotenv手动加载失败的问题

如果需要手动测试.env加载,不要只调用load_dotenv(),而是明确指定文件路径,避免找错位置:

from dotenv import load_dotenv
import os
# 明确指向项目根目录的.env
load_dotenv(os.path.join(os.getcwd(), '.env'))

为什么之前的方法没生效?

远程SSH环境下,VS Code的环境变量加载逻辑和本地略有不同:默认情况下,.env的自动查找可能因为远程会话上下文的问题,优先找到扩展目录里的文件,而不是你项目里的。所以明确指定python.envFile路径是关键。

另外,PyCharm会自动把项目根目录加入Python路径,但VS Code更偏向灵活配置,所以需要咱们手动补上这个基础设置,搞定之后就是开箱即用的状态了。

备注:内容来源于stack exchange,提问作者algebruh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:52:59