Ubuntu 23.04执行install.bash脚本遇模块缺失错误求助
解决Ubuntu 23.04中thal-labelprinting安装的ModuleNotFoundError问题
问题根源分析
从错误日志和install.bash脚本可定位两个核心问题:
- 虚拟环境路径不一致:脚本创建的虚拟环境是
/opt/usr/virtualenv/labelprinting,但后续安装Python依赖时误用了/opt/usr/virtualenv/lion路径,导致依赖包安装到错误环境,运行时无法找到对应模块。 - post-install脚本未激活虚拟环境:系统配置
thal-labelprinting包时,直接用系统Python执行/opt/usr/thal_labelprinting/bin/update.py,未激活项目虚拟环境,同时Config模块未被添加到Python可识别路径中。
分步解决方案
1. 修复dpkg错误状态
先处理未配置完成的包:
sudo dpkg --configure -a
若仍报错,强制移除待修复包:
sudo dpkg --remove --force-remove-reinstreq thal-labelprinting
2. 修正install.bash的路径错误
打开install.bash脚本,将所有/opt/usr/virtualenv/lion路径替换为/opt/usr/virtualenv/labelprinting,修正后的依赖安装片段如下:
echo "" echo "Installing python packages" run "/opt/usr/virtualenv/labelprinting/bin/pip install wxPython==4.0.6" run "/opt/usr/virtualenv/labelprinting/bin/pip install elaphe3==0.2.0" run "/opt/usr/virtualenv/labelprinting/bin/pip install reportlab==3.5.23"
3. 让Python能找到Config模块
- 检查
/opt/usr/thal_labelprinting/bin/目录下是否存在Config.py,若缺失需补全该文件; - 若文件存在但仍报错,在
update.py开头添加路径配置:
import sys sys.path.append('/opt/usr/thal_labelprinting')
4. 让post-install脚本使用虚拟环境Python
修改包的post-install脚本(路径通常为/var/lib/dpkg/info/thal-labelprinting.postinst),指定用虚拟环境的Python执行脚本:
#!/bin/bash /opt/usr/virtualenv/labelprinting/bin/python /opt/usr/thal_labelprinting/bin/update.py
5. 重新执行安装
完成以上修改后,重新运行安装脚本:
sudo ./install.bash install
内容的提问来源于stack exchange,提问作者Sayyam
相关产品推荐
相关产品推荐

