Python模块导入报错:找不到pipeline_modules模块求排查(拒绝sys.path方案)
解决ModuleNotFoundError: No module named 'pipeline_modules'(不修改sys.path)
问题详情
执行 from pipeline_modules.pdf2docx_convertor import * 时触发报错:ModuleNotFoundError: No module named 'pipeline_modules',当前sys.path输出为:
['c:\microservice\pdf_processing_pipepline\pipeline', 'C:\microservice_env\python39.zip', 'C:\microservice_env\DLLs', 'C:\microservice_env\lib', 'C:\microservice_env', 'C:\microservice_env\lib\site-packages']
项目结构:
解决方案(无需修改sys.path)
1. 使用相对导入(脚本作为包的一部分运行)
将导入语句改为相对路径形式:
from ..pipeline_modules.pdf2docx_convertor import *
注意:不能直接运行该脚本,需从项目根目录pdf_processing_pipepline通过包模块方式启动:
python -m pipeline.your_script_filename
2. 切换到项目根目录运行脚本
在终端中先切换到pipeline_modules和pipeline的共同父目录:
cd c:\microservice\pdf_processing_pipepline
再执行脚本:
python pipeline/your_script_filename.py
Python会自动将当前工作目录加入sys.path,从而找到pipeline_modules。
3. 安装本地可编辑包
在项目根目录创建setup.py文件:
from setuptools import setup, find_packages setup( name="pdf-processing-pipeline", version="0.1.0", packages=find_packages(), )
执行本地安装命令:
pip install -e .
此操作会在Python环境的site-packages中创建本地模块的链接,之后无论在哪运行脚本都能直接导入pipeline_modules。
内容的提问来源于stack exchange,提问作者ZKS
相关产品推荐
相关产品推荐

