EditorWindow.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:ouroboros 作者: pybee 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号