【发布时间】:2016-10-07 21:06:11
【问题描述】:
首先让我提供一些导致问题的背景信息。
我的 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.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
【问题讨论】:
-
DLL 不是通过重命名可执行文件创建的。 Python 3.5 在为所有用户安装时不再在 System32 目录中安装 python35.dll。它总是在 python.exe 旁边。现在,每台机器的安装也默认为“Program Files [(x86)]”,这是程序的首选和安全目录。
标签: python windows python-2.7 python-3.5