这可能有一个明显的答案,但是我是一个初学者。我有一个“模块”(实际上只是一个我经常使用的带有一堆功能的文件),在开始时我导入了许多其他模块。但是,由于我在许多系统上工作,因此并非所有模块都可以在任何特定计算机上加载。为了使事情变得更加困难,在导入软件包时,我还会更改软件包的名称-例如,matplotlib缩写为mp。
我只想加载当前正在使用的系统上存在的那些模块,并对不使用的模块进行一些错误处理。我能想到的唯一方法是将每个import语句括在其自己的try块中,这似乎是非Python的。如果将它们全部包含在同一个try块中,则无论哪个模块引发错误,都将阻止后续模块的加载。有什么想法会让事情看起来更漂亮吗?如果我不想更改他们的名字,那就太容易了...
最佳答案
我认为try except
块不是非Python的;相反,它是在Python上处理导入的一种常用方法。
引用Dive into Python:
try:
import termios, TERMIOS
except ImportError:
try:
import msvcrt
except ImportError:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
else:
getpass = AskPassword
else:
getpass = win_getpass
else:
getpass = unix_getpass