我有一个python项目$MY_PROJECT
,其中python笔记本位于文件夹$MY_PROJECT/Analysis/src/notebooks
中,而python文件位于$MY_PROJECT/Analysis/src/notebooks/scripts
中。
在每个笔记本中,我都有这些说明来加载scripts文件夹中的python文件。稍后,将方法导入笔记本,如下所示。
module_path = os.path.abspath(os.path.join('./scripts'))
if module_path not in sys.path:
sys.path.append(module_path)
from scripts.parser import load_static_data
在scripts
文件夹中,有一个parser.py
方法的文件(__main__
)。我在此文件中决定不将脚本模块附加到sys.path
,因为该文件已经位于scripts
文件夹中。
如果我尝试在命令行中运行parser.py
,则会收到以下错误消息。
python scripts/parser.py input1 ./output-folder
Traceback (most recent call last):
File "scripts/parser.py", line 10, in <module>
from scripts.data_loading import load_static_data
ModuleNotFoundError: No module named 'scripts'
如何定义每次运行python文件或笔记本时从项目根文件夹(即$MY_PROJECT
)加载的类?