PyCharm导入类遇ModuleNotFoundError:找不到Dir1模块求助
解决Python命名空间包导入报错:ModuleNotFoundError: No module named 'Dir1'
方法1:临时设置PYTHONPATH环境变量
终端运行时,把项目根目录(即eraseme目录)加入Python的搜索路径。如果当前已在eraseme目录下,执行:PYTHONPATH=. python Dir2/knowyourguitar.py若不在该目录,使用绝对路径:
PYTHONPATH=/Users/xxxxxxxx/PycharmProjects/eraseme python /Users/xxxxxxxx/PycharmProjects/eraseme/Dir2/knowyourguitar.py方法2:在脚本中手动添加路径
在knowyourguitar.py最开头添加以下代码,自动将项目根目录加入Python搜索路径,无论在哪里运行脚本都能找到Dir1:import sys import os # 获取当前脚本的父目录的父目录(即eraseme目录) project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(project_root)添加后再执行原有导入语句即可。
方法3:使用模块方式运行脚本
先进入eraseme目录,再用-m参数以模块形式运行脚本:cd /Users/xxxxxxxx/PycharmProjects/eraseme python -m Dir2.knowyourguitar同时需要把导入语句改成相对导入:
from ..Dir1.guitarClass import Guitar, ElectricGuitar, BassGuitar
补充说明:PyCharm中能正常运行是因为IDE自动将项目根目录添加到了Python的sys.path中,但终端默认不会包含该路径,因此需要手动配置。
内容的提问来源于stack exchange,提问作者ElliotB
相关产品推荐
相关产品推荐

