python import
依据src以下的目录路径进行导入,每次都是从src的下一级开始
ref
ModuleNotFoundError: No module named ‘main.xxx’; ‘main’ is not a package问题
note
可行方法:
以src
为根目录,从src
的下一级目录开始导入,每次都是从src的下一级开始,即绝对导入
文件结构:
|---src
|---Core
|---__init__.py
|---Wheel.py
|---Parser.py
from Core.Wheel import Wheel
pycharm运行正常命令行运行报错
注意事项:
这样只能在pycharm中可以运行,在命令行中会报错:
ModuleNotFoundError: No module named 'practice'
原因:
观察pycharm的python console可以看到,在运行之前,pycharm添加了代码:
sys.path.extend(['/home/pbc/Documents/PycharmProjects/myEPI/src', ])
即,将工程根目录路径和source root路径添加到了系统路径
经实验,src
路径是有效的其作用的,根目录不起作用
解决方法:
把src路径添加到系统路径
# sys.path.extend(['/home/pbc/Documents/PycharmProjects/myEPI', '/home/pbc/Documents/PycharmProjects/myEPI/src'])
# sys.path.extend(['/home/pbc/Documents/PycharmProjects/myEPI', ])
sys.path.extend(['/home/pbc/Documents/PycharmProjects/myEPI/src', ])