Issue 描述正文
问题现象
本地IDE运行项目可正常导入utils、common等内部自定义模块,部署至服务器执行启动脚本时,抛出ModuleNotFoundError,第三方依赖包无异常。
根因分析
- IDE会自动将项目根目录加入
PYTHONPATH,服务器Shell环境无该自动处理;
- 项目现有启动脚本未统一配置模块检索路径,新人部署极易遗漏路径配置步骤。
复现步骤
- 本地IDE启动主程序,导入内部模块正常;
- 服务器直接执行
python main.py,未前置设置PYTHONPATH;
- 运行至自定义模块导入代码行,程序报错终止。
优化建议
- 在项目启动脚本内置自动追加项目根目录至
sys.path的代码,抹平本地与服务端路径差异;
- 文档补充路径校验命令,方便快速排查:
# 查看当前Python模块检索路径
python -c "import sys; print('\n'.join(sys.path))"
- 提供标准化启动前置命令模板:
export PYTHONPATH=$(pwd):$PYTHONPATH
python main.py
环境信息
系统:Linux
Python版本:3.9+
项目:OpenHUTB
部署环境:服务器虚拟环境
Issue 描述正文
问题现象
本地IDE运行项目可正常导入
utils、common等内部自定义模块,部署至服务器执行启动脚本时,抛出ModuleNotFoundError,第三方依赖包无异常。根因分析
PYTHONPATH,服务器Shell环境无该自动处理;复现步骤
python main.py,未前置设置PYTHONPATH;优化建议
sys.path的代码,抹平本地与服务端路径差异;环境信息
系统:Linux
Python版本:3.9+
项目:OpenHUTB
部署环境:服务器虚拟环境