python - 操作系统错误 : socket no longer exists (Python IDLE error)

标签 python windows python-2.7 python-3.5

首先让我提供一些导致该问题的背景信息。 我的 Win 8.1 笔记本电脑中安装了两个版本的 python。最初 Py 2.5 被设置为默认值。我这样做的方法是将 Python 3.5 的 python.exe 重命名为 python35.exe 和文件 pythonw.exe 作为 pythonw35.exe 似乎创建了两个 .dll 文件,这两个文件的名称与这两个文件的名称相同(我不记得这两个 dll 文件是否存在在重命名之前)并成功将 Python 2.7 设置为默认值(即当我在命令行中键入命令 python 时,python 2.7 运行)。最近我需要将 Python 3.5 设置为默认值。然后,我继续以相同的方式重命名 Python 2.7 版本的文件,并将 3.5 版本的文件名恢复为其原始的正常格式(即 python.exepythonw.exe)。


在所有这些困惑之后,我在 IDLE 中运行 print("Hello World") 并弹出以下错误:

IDLE internal error in runcode()
Traceback (most recent call last):
  File "C:\Python35-32\lib\idlelib\rpc.py", line 339, in putmessage
    r, w, x = select.select([], [self.sock], [])
TypeError: argument must be an int, or have a fileno() method.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python35-32\lib\idlelib\rpc.py", line 240, in asyncqueue
    self.putmessage((seq, request))
  File "C:\Python35-32\lib\idlelib\rpc.py", line 342, in putmessage
    raise OSError("socket no longer exists")
OSError: socket no longer exists

最佳答案

我也遇到了同样的问题。由于将我的文件命名为“集合”而引发此错误。这意味着如果您将文件命名为任何内置函数、关键字、模块等,则会引发此错误。

此错误的解决方案是,检查您是否通过任何内置函数、关键字、模块等创建了任何文件。如果是,则重命名与任何 python 关键字无关的文件名。它将按预期工作。

关于python - 操作系统错误 : socket no longer exists (Python IDLE error),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37688228/

相关文章:

windows - 通过服务设置的环境变量在用户 session 中不可见

python - 为什么我的程序在我添加旋转后变得非常迟钝,我该如何解决这个问题?

python - 在Mouse中将 'elif'解释为画笔代码

python - 计算嵌套列表中的唯一元组

从长路径提取文件时 Windows 上的 Python Zipfile extractall IOError

windows - 无法在 Windows Server 2008 R2 标准上运行 windbg

windows - 从 Windows 服务更改显示分辨率 (Windows 7)

python - 我有一个按钮列表,但无法访问它们

string - 在字符串的每个字符之间添加下划线

python - 禁用特殊的 "class"属性处理