Python无法导入本地模块scraper_backend.jobs,不用sys.path如何解决?
解决Python本地模块导入问题
问题原因
你的scraper_backend和jobs目录没有被Python识别为可导入的包,核心原因是缺少Python包的标识文件__init__.py。
解决方案
按以下步骤调整文件结构:
- 在
scraper_backend目录下创建空的__init__.py文件 - 在
scraper_backend/jobs目录下也创建空的__init__.py文件
修改后的完整文件结构如下:
scraper_backend - __init__.py - jobs - __init__.py - extract.py - load.py - models.py - transform.py - url_builder.py main.py
验证操作
添加完两个空的__init__.py文件后,直接运行main.py,无需保留sys.path.append("scraper_backend//jobs")代码,原导入语句from scraper_backend.jobs import extract, load, transform即可正常生效。
原理说明
Python通过目录下的__init__.py文件识别该目录为可导入的包,没有这个文件时,目录仅被视为普通文件夹,无法作为模块层级的一部分进行导入。
内容的提问来源于stack exchange,提问作者david backx
相关产品推荐
相关产品推荐

