南大通用GBase 8a在扩容操作报ImportError No module named pexpect错误

GBase 8a集群在执行扩容时,要在各个节点执行python的脚本,使用了pexpect的库。如果节点不存在pexpect.py库,则会报这个错误ImportError No module named pexpect

报错样例

ImportError No module named pexpect

ImportError No module named pexpect

解决方案

GBase 8a的安装包自带了一个python.py和python.pyc

[root@gbase_rh7_003 gcinstall]# ll pex*
-rwxrwxr-x 1 gbase gbase 75990 Nov 17 14:29 pexpect.py
-rw-rw-r-- 1 gbase gbase 63259 Apr 16 09:03 pexpect.pyc
[root@gbase_rh7_003 gcinstall]#

将如上2个文件,复制到新增节点的报错py程序的目录下,一般是/tmp下面。

新版本集群安装程序已经自动完成了这个功能,所以老版本(大于4年以前的8.6.2Build20早期版本)集群建议尽快升级。

另外,也可以将py复制到python的默认类库下,比如

  复制到/usr/lib/python2.7/site-packages/ 目录下面。

然后将其加入PYTHONPATH

export PYTHONPATH=/usr/lib/python2.7/site-packages/