Skip to content

本地与服务端 PYTHONPATH 不一致导致自定义模块导入失败 #7627

Description

@XieTJ

Issue 描述正文

问题现象

本地IDE运行项目可正常导入utilscommon等内部自定义模块,部署至服务器执行启动脚本时,抛出ModuleNotFoundError,第三方依赖包无异常。

根因分析

  1. IDE会自动将项目根目录加入PYTHONPATH,服务器Shell环境无该自动处理;
  2. 项目现有启动脚本未统一配置模块检索路径,新人部署极易遗漏路径配置步骤。

复现步骤

  1. 本地IDE启动主程序,导入内部模块正常;
  2. 服务器直接执行python main.py,未前置设置PYTHONPATH
  3. 运行至自定义模块导入代码行,程序报错终止。

优化建议

  1. 在项目启动脚本内置自动追加项目根目录至sys.path的代码,抹平本地与服务端路径差异;
  2. 文档补充路径校验命令,方便快速排查:
# 查看当前Python模块检索路径
python -c "import sys; print('\n'.join(sys.path))"
  1. 提供标准化启动前置命令模板:
export PYTHONPATH=$(pwd):$PYTHONPATH
python main.py

环境信息

系统:Linux
Python版本:3.9+
项目:OpenHUTB
部署环境:服务器虚拟环境

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions