|
发表于 2022-9-15 09:32:07
|
显示全部楼层
本帖最后由 jackz007 于 2022-9-15 09:58 编辑
以下内容来自:https://docs.python.org/zh-cn/3/library/idle.html#startup-failure
启动失败
IDLE 使用一个套接字在 IDLE GUI 进程和用户代码执行进程之间通信。 当 Shell 启动或重启动时必须建立一个连接。 (重启动会以一个内容为 'RESTART' 的分隔行来标示)。 如果用户进程无法连接到 GUI 进程,它通常会显示一个包含 'cannot connect' 消息的 Tk 错误提示框来引导用户。 随后将会退出程序。
有一个 Unix 系统专属的连接失败是由系统网络设置中错误配置的掩码规则导致的。 当从一个终端启动 IDLE 时,用户将看到一条以 ** Invalid host: 开头的消息。 有效的值为 127.0.0.1 (idlelib.rpc.LOCALHOST)。 用户可以在一个终端窗口输入 tcpconnect -irv 127.0.0.1 6543 并在另一个终端窗口中输入 tcplisten <same args> 来进行诊断。
导致连接失败的一个常见原因是用户创建的文件与标准库模块同名,例如 random.py 和 tkinter.py。 当这样的文件与要运行的文件位于同一目录中时,IDLE 将无法导入标准库模块。 可用的解决办法是重命名用户文件。
虽然现在已不太常见,但杀毒软件或防火墙程序也有可能会阻止连接。 如果无法将此类程序设为允许连接,那么为了运行 IDLE 就必须将其关闭。 允许这样的内部连接是安全的,因为数据在外部端口上不可见。 一个类似的问题是错误的网络配置阻止了连接。
Python 的安装问题有时会使 IDLE 退出:存在多个版本时可能导致程序崩溃,或者单独安装时可能需要管理员权限。 如果想要避免程序崩溃,或是不想以管理员身份运行,最简单的做法是完全卸载 Python 并重新安装。
有时会出现 pythonw.exe 僵尸进程问题。 在 Windows 上,可以使用任务管理员来检查并停止该进程。 有时由程序崩溃或键盘中断(control-C)所发起的重启动可能会出现连接失败。 关闭错误提示框或使用 Shell 菜单中的 Restart Shell 可能会修复此类临时性错误。
当 IDLE 首次启动时,它会尝试读取 ~/.idlerc/ 中的用户配置文件(~ 是用户的家目录)。 如果配置有问题,则应当显示一条错误消息。 除随机磁盘错误之外,此类错误均可通过不手动编辑这些文件来避免。 请使用 Options 菜单来打开配置对话框。 一旦用户配置文件出现错误,最好的解决办法就是删除它并使用配置对话框重新设置。
如果 IDLE 退出时没有发出任何错误消息,并且它不是通过控制台启动的,请尝试通过控制台或终端 (python -m idlelib) 来启动它以查看是否会出现错误消息。
在基于 Unix 的系统上使用 tcl/tk 低于 8.6.11 的版本 (查看 About IDLE) 时特定字体的特定字符可能导致终端提示 tk 错误消息。 这可能发生在启动 IDLE 编辑包此种字符的文件或是在之后输入此种字符的时候。 如果无法升级 tcl/tk,可以重新配置 IDLE 来使用其他的字体。
以上内容来自:https://docs.python.org/zh-cn/3/library/idle.html#startup-failure
就是说,如果你的代码中有
本来 Python 应该从系统目录加载这个模块,但是,如果代码文件所处目录内恰好就有一个名为 "random.py" 或 "random.pyc" 的文件,那么,Python 就会从当前目录而不是系统目录加载这个模块文件。 这就是导致出现问题的原因。 |
|