python3.7显示行号,Python无法显示行号(下)

Python无法显示行号(下)

安装 IDLEX

IDLEX 是 IDLE 的扩展增强版,项目地址http://idlex.sourceforge.net/about.html

下载后运行idlex.py 会弹出Dos 报错:

NameError: name 'channels' is not defined

错误全部信息如下:

Traceback (most recent call last):

File "C:\downloads\python\idlex-1.12\idlexlib\extensionManager.py", line 131,

in load_extension

mod = importlib.import_module('.' + fullname, package=__package__)

File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module

__import__(name)

File "C:\downloads\python\idlex-1.12\idlexlib\extensions\IPyIDLE.py", line 253

, in class IdleXSubSocketChannel(SimpleChannel, channels.IOPubChannel):

NameError: name 'channels' is not defined

could not load IPyIDLE

* 出错原因是没安装IPython *

安装 setuptools

参考https://pypi.python.org/pypi/setuptools

在PowerShell中输入

> (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -

C盘用户目录会出现安装包

> (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python - --user

9e232200c03dff8640daa63a6dbe2920.png

可以看到系统自动将setuptool-18.0.1安装到了 E:\python 所在目录中

这是因为在安装python时,已经在环境变量中加入了 E:\python

安装 IPython

直接在PowerShell中运行

pip install ipython

a262e991ded1af01541053c983193a68.png喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="language-python hljs ">再回过头来运行idlex.py ,弹出DOS 窗口出现新的错误

ImportError: IPython.kernel.zmq requires pyzmq >= 2.1.11

可以通过

在PowerShell中运行 pip install pyzmq 或者 easy_install pyzmq

Traceback (most recent call last):

File "E:\py_code\idlex-1.12\idlexlib\extensionManager.py", line 131, in load_e

xtension

mod = importlib.import_module('.' + fullname, package=__package__)

File "E:\Python\lib\importlib\__init__.py", line 37, in import_module

__import__(name)

File "E:\py_code\idlex-1.12\idlexlib\extensions\IPyIDLE.py", line 253, in class IdleXSubSocketChannel(SimpleChannel, channels.IOPubChannel):

AttributeError: 'module' object has no attribute 'IOPubChannel'

http://www.dengb.com/xtzh/1032838.htmlwww.dengb.comtruehttp://www.dengb.com/xtzh/1032838.htmlTechArticlePython无法显示行号(下) 安装 IDLEX IDLEX 是 IDLE 的扩展增强版,项目地址http://idlex.sourceforge.net/about.html 下载后运行idlex.py 会弹出Dos 报错: Na...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过在 Text 组件左侧插入一个 LineNumber 类型的 Text 组件来实现显示行号。 以下是示例代码: ```python import tkinter as tk class LineNumber(tk.Text): def __init__(self, *args, **kwargs): tk.Text.__init__(self, *args, **kwargs) self.config(state="disabled", padx=4) def update(self, first, last): self.config(state="normal") self.delete(1.0, "end") for i in range(first, last): self.insert("end", f"{i}\n") self.config(state="disabled") class MainApplication(tk.Frame): def __init__(self, *args, **kwargs): tk.Frame.__init__(self, *args, **kwargs) self.text_widget = tk.Text(self, padx=4) self.text_widget.pack(side="right", fill="both", expand=True) self.text_widget.bind("<Key>", self.update_line_numbers) self.linenumbers = LineNumber(self, width=4) self.linenumbers.pack(side="left", fill="y") self.scrollbar = tk.Scrollbar(self.text_widget) self.scrollbar.pack(side="right", fill="y") self.text_widget.config(yscrollcommand=self.scrollbar.set) self.scrollbar.config(command=self.text_widget.yview) self.update_line_numbers() def update_line_numbers(self, event=None): first, last = self.text_widget.yview() first = int(first * self.text_widget.index("end-1c").split(".")[0]) last = int(last * self.text_widget.index("end-1c").split(".")[0]) self.linenumbers.update(first, last) if __name__ == "__main__": root = tk.Tk() app = MainApplication(root) app.pack(side="top", fill="both", expand=True) root.mainloop() ``` 在这个示例中,我们创建了一个名为 LineNumber 的类,它继承自 Text 类,并且添加了一个 update 方法,用于更新行号。 在 MainApplication 类中,我们创建了一个 Text 组件和一个 LineNumber 组件,并将它们都放置在一个 Frame 中。我们还创建了一个 Scrollbar 组件,并将其与 Text 组件关联起来。在 update_line_numbers 方法中,我们获取当前 Text 组件的可视区域(即首行和尾行),然后调用 LineNumber 的 update 方法来更新行号。 在主函数中,我们创建了一个 Tkinter 窗口,并将 MainApplication 放置在其中,然后启动主循环。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值