我有一个使用 paramiko 模块的 python 代码。默认情况下未安装 paramiko,为了确保代码始终运行,我需要添加某种安全的导入方法来尝试导入模块,并在失败的情况下尝试安装它。实现与以下代码等效的最pythonic方法是什么?
import os, importlib
def SafeImport(module):
while True:
try:
module = importlib.import_module(module)
return module
except Exception as e:
print module + ' is not installed, you will need root privileges to install it. ' + str(e)
os.system('sudo yum --assumeyes install python-pip python-devel')
os.system('sudo pip install ' + module)
paramiko = SafeImport('paramiko')
这显然不是跨平台代码,它会在 windows、mac os 甚至在没有yum
. 事实上,我无法确定运行脚本的 python 版本,所以它可能importlib
无法使用。解决此类问题的一般pythonic方法是什么?