obd源码打包-安装-使用出错

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
源码安装:obdeploy: A deployer and package manager for OceanBase open-source software.
master分支

【问题描述】清晰明确描述问题

打包过程:
step1
修改:PYTHON3_SWITCH=“source /mnt/nvme8n1/wrw/python3_env/bin/activate”

step2
./ob-deploy-build.sh

安装、执行出现以下错误:

$obd --help
Traceback (most recent call last):
  File "obd.py", line 33, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
  File "core.py", line 32, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
  File "ssh.py", line 30, in <module>
ModuleNotFoundError: No module named 'subprocess32'
[100798] Failed to execute script 'obd' due to unhandled exception!

subprocess32模块已经确认安装

【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

1 个赞

提一个github issue吧

obd 你们是做了2次修改吗? 如果有修改的需求, 可以提出来, 看能不能直接做到主干里面.

obd 只是一个工具, 一般大家就直接用就可以了, 开源出来, 主要是方便大家了解怎么安装ob, 可以从中抽取代码集成到自己的管控平台中

1 个赞

obd我们没有做二次修改,只是打包。

-PYTHON3_SWITCH=$5
+PYTHON3_SWITCH=“source /mnt/nvme8n1/wrw/python3_env/bin/activate”

我本地测试过,发现是上面修改导致的,但是我不修改上面配置,打包的过程会报错

2 个赞

把https://gitee.com/oceanbase/obdeploy/blob/master/rpm/ob-deploy.spec#L64
改成 pyinstaller --hidden-import=decimal --hidden-import=configparser --hidden-import= subprocess32 -F obd.py
试试呢