Sublime Text中Python文件import失效,ModuleNotFoundError问题求助
问题原因及解决方法
问题出在哪?
出现ModuleNotFoundError: No module named 'module'的核心原因是Python找不到你的module.py文件,常见场景有两种:
main.py和module.py不在同一个目录下,Python默认只会搜索当前运行脚本的目录、系统内置模块路径,找不到其他目录里的文件。- Sublime Text运行脚本时的工作目录不是
main.py所在的文件夹,导致Python的搜索路径不包含module.py的位置。
修正方法
方法1:确保文件在同一目录
直接把main.py和module.py放在同一个文件夹里,这是最简单的解决方式,Python会自动识别同目录下的模块。
方法2:修改Sublime Text的构建系统
如果需要分开存放文件,或者Sublime的工作目录异常,可以自定义构建系统:
- 点击顶部菜单栏
Tools > Build System > New Build System - 删除默认内容,替换为以下代码:
(注:如果你的Python命令是{ "cmd": ["python", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "working_dir": "$file_path", "selector": "source.python", "env": {"PYTHONPATH": "$file_path:$PYTHONPATH"} }python3,把第一行的python改成python3) - 保存文件为
PythonCustom.sublime-build,然后在Tools > Build System中选择这个自定义系统,再运行脚本即可。
方法3:在代码中手动添加模块路径
如果不想修改构建系统,可以在main.py开头添加代码,把module.py所在目录加入Python的搜索路径:
import sys import os # 获取当前脚本所在目录 current_dir = os.path.dirname(os.path.abspath(__file__)) # 如果该目录不在Python搜索路径中,添加进去 if current_dir not in sys.path: sys.path.append(current_dir) import module def main(): module.greet("Linda") if __name__ == "__main__": print("This is the Main.py file") main()
内容的提问来源于stack exchange,提问作者Terry
相关产品推荐
相关产品推荐

