OSError:套接字不再存在(Python IDLE错误)

时间:2016-06-07 19:57:55

标签: python windows python-2.7 python-3.5

首先让我提供一些导致问题的背景信息。 我的Win 8.1笔记本电脑中安装了两个版本的python。最初Py 2.5被设置为默认值。我这样做的方式是我将Python {的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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

所以我刚刚再次安装了python 3.5.1设置,并且运行正常。

答案 2 :(得分:0)

如果上述解决方案不起作用,则只需重新启动即可解决问题。您可以重新启动Python Shell或设备。如果问题仍然存在,建议您重新安装python。