首先让我提供一些导致问题的背景信息。
我的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.exe
和pythonw.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
答案 0 :(得分:2)
我也遇到了同样的问题。由于将我的文件命名为" collections"而引发此错误。这意味着如果您将文件命名为任何内置函数,关键字,模块等,则会出现此错误。
此错误的解决方法是,检查您是否通过任何内置函数,关键字,模块等创建了任何文件。如果是,则重命名与任何python关键字无关的文件名。它将按预期工作。
答案 1 :(得分:1)
所以我刚刚再次安装了python 3.5.1设置,并且运行正常。
答案 2 :(得分:0)
如果上述解决方案不起作用,则只需重新启动即可解决问题。您可以重新启动Python Shell或设备。如果问题仍然存在,建议您重新安装python。