使用GitHub Codespace时遭遇ModuleNotFoundError问题求助
解决Python导入上级目录模块的ModuleNotFoundError问题
问题场景
项目目录结构:
my-codespace |--- utils |------ my_script.py |--- config.py
在utils/my_script.py中尝试导入config.py时,出现运行时错误:
ModuleNotFoundError: No module named 'config'
编辑器自动补全可识别config.py的内容,但运行时报错,且一段时间后编辑器会出现红线提示;本地PyCharm运行该仓库无问题,但VS Code及GitHub Codespace均出现此问题。
解决方案
方法一:临时添加项目根目录到Python路径
在my_script.py开头加入代码,手动将项目根目录加入Python的模块搜索路径:
import sys from pathlib import Path # 获取当前脚本所在目录的上级目录(即项目根目录) sys.path.append(str(Path(__file__).parent.parent)) # 正常导入config import config
方法二:配置PYTHONPATH环境变量
在项目根目录创建.env文件,添加以下内容:
PYTHONPATH=${PYTHONPATH}:./
VS Code的Python扩展会自动读取.env文件的配置,重启编辑器或重新加载窗口后生效。
方法三:标记项目根目录为源代码根
- 打开编辑器命令面板(Ctrl+Shift+P / Cmd+Shift+P)
- 执行
Python: Select Interpreter,选择当前使用的Python解释器 - 右键点击
my-codespace目录,选择Mark Directory as->Source Root
编辑器会将该目录纳入模块搜索范围,导入报错会自动消失。
方法四:使用相对导入(限制场景)
如果my_script.py是作为包的一部分被导入(而非直接运行),可以用相对导入:
from .. import config
注意:直接运行my_script.py(如python utils/my_script.py)时,相对导入会报错,仅适用于包内部的模块调用。
差异说明
PyCharm默认会自动将项目根目录加入Python路径,而VS Code和GitHub Codespace需要手动配置,这是两者运行表现不同的原因。
内容的提问来源于stack exchange,提问作者Babak
相关产品推荐
相关产品推荐

