Python导入报错:找不到engine模块,寻求解决方案
解决Python模块导入错误:ModuleNotFoundError: No module named 'engine'
问题场景
运行文件 e:\New folder\jarvis\engine\features.py 时出现以下错误:
[运行中] python -u "e:\New folder\jarvis\engine\features.py"
Traceback (most recent call last):
File "e:\New folder\jarvis\engine\features.py", line 5, in
from engine.command import speak
ModuleNotFoundError: No module named 'engine'
[已完成] 退出代码=1,耗时10.829秒
解决方案
修改导入语句:因为
features.py本身位于engine目录下,直接使用相对路径导入同目录模块即可:from .command import speak添加项目根目录到Python路径:在
features.py开头插入以下代码,将项目根目录(e:\New folder\jarvis)加入模块搜索路径:import sys import os sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from engine.command import speak从项目根目录运行脚本:打开命令行切换到项目根目录:
cd "e:\New folder\jarvis"然后用模块方式运行脚本:
python -m engine.features这种方式会自动把项目根目录加入模块搜索路径。
临时设置环境变量:在Windows命令行中执行以下命令,将项目根目录加入PYTHONPATH:
set PYTHONPATH="e:\New folder\jarvis"之后再运行
features.py即可正常导入模块。
内容的提问来源于stack exchange,提问作者MANIKANDAN
相关产品推荐
相关产品推荐

