之前在Ubuntu上开发quagga自动配置程序的时候,代码里有个路径/root/zebra_config/stackconfig/commands,为了导入commands里的模块,我在.bashrc下export PYTHONPATH=$PYTHONPATH:/root/zebra_config/stackconfig,导致了Python查找commands的路径变为了/root/zebra_config/stackconfig/commands
今天写一个监控程序时需要导入Python的commands模块,使用commands.getstatusoutput(),却得到输出AttributeError: 'module' object has no attribute 'getstatusoutput',后来通过
commands.__path__
发现路径变为了
/root/zebra_config/stackconfig/commands
,而不是系统的
/usr/lib/python2.7/commands.py
代码修改为
#!/usr/bin/env python
#coding:utf-8
import imp
imp.load_source('commands','/usr/lib/python2.7/commands.py')
import commands
这样改代码里的commands环境变量就会变回来