我有一個使用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,甚至Linux發行版失敗沒有yum
。事實上,我不能確定運行腳本的python版本是否可用,因此importlib
將不可用。解決這些問題的一般pythonic方法是什麼?
可能最好的解決方案是創建適當的Python包並在您的安裝文件中列出需求。 – zero323