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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions