python importlib详解,Python importlib.abc方法代码示例

# 需要导入模块: import importlib [as 别名]

# 或者: from importlib import abc [as 别名]

def open_module(self, event=None):

# XXX Shouldn't this be in IOBinding?

try:

name = self.text.get("sel.first", "sel.last")

except TclError:

name = ""

else:

name = name.strip()

name = tkSimpleDialog.askstring("Module",

"Enter the name of a Python module\n"

"to search on sys.path and open:",

parent=self.text, initialvalue=name)

if name:

name = name.strip()

if not name:

return

# XXX Ought to insert current file's directory in front of path

try:

spec = importlib.util.find_spec(name)

except (ValueError, ImportError) as msg:

tkMessageBox.showerror("Import error", str(msg), parent=self.text)

return

if spec is None:

tkMessageBox.showerror("Import error", "module not found",

parent=self.text)

return

if not isinstance(spec.loader, importlib.abc.SourceLoader):

tkMessageBox.showerror("Import error", "not a source-based module",

parent=self.text)

return

try:

file_path = spec.loader.get_filename(name)

except AttributeError:

tkMessageBox.showerror("Import error",

"loader does not support get_filename",

parent=self.text)

return

if self.flist:

self.flist.open(file_path)

else:

self.io.loadfile(file_path)

return file_path

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值