Python跨目录导入模块遇ImportError问题求助
Python跨目录导入模块解决方案
项目结构确认
├── notebooks (folder) │ └── data_evaluation.ipynb ├── src (folder) │ ├── __init__.py │ ├── utils.py │ └── webscraping (folder) │ ├── __init__.py │ └── scraping_data.py
1. 在scraping_data.py中导入utils.py的函数
方法一:动态添加项目根目录到Python路径(推荐,可直接运行脚本)
在scraping_data.py开头添加以下代码,之后即可用绝对导入:
import sys from pathlib import Path # 定位项目根目录(当前文件位于src/webscraping,需向上回溯两级到根目录) project_root = Path(__file__).parent.parent.parent sys.path.append(str(project_root)) # 现在可以正常导入 from src.utils import function
方法二:以包模块方式运行脚本(使用相对导入)
不要直接双击或用python src/webscraping/scraping_data.py运行脚本,而是在项目根目录下执行以下命令:
python -m src.webscraping.scraping_data
此时可以使用相对导入语法:
from ..utils import function
2. 在data_evaluation.ipynb中导入utils.py的函数
在notebook的第一个代码单元格中添加路径配置代码,之后即可导入:
import sys from pathlib import Path # 定位项目根目录(当前notebook位于notebooks文件夹,向上回溯一级到根目录) project_root = Path.cwd().parent sys.path.append(str(project_root)) # 正常导入函数 from src.utils import function
内容的提问来源于stack exchange,提问作者leon
相关产品推荐
相关产品推荐

