Lassen Sie mich zunächst einige Hintergrundinformationen geben, die zu dem Problem führen. Ich hatte/habe zwei Versionen von Python in meinem Win 8.1 Laptop installiert. Ursprünglich wurde Py 2.5 als Standard eingestellt. Die Art, wie ich es tat, war, dass ich die python.exe
von Python 3.5 als python35.exe
und die Datei pythonw.exe
als pythonw35.exe
, die umbenannt scheinen, dass die beiden Dateien mit dem gleichen Namen erstellt zwei Dateien .dll
haben (ich erinnere mich nicht, ob die zwei DLL-Dateien waren vor der Umbenennung vorhanden und haben Python 2.7 als Standard gesetzt (dh als ich in der Kommandozeile den Befehl python
eintippte, lief python 2.7). Vor kurzem musste ich Python 3.5 als Standard einstellen. Ich fuhr dann fort, die Dateien der Version Python 2.7
auf die gleiche Weise umzubenennen und die Dateinamen der Version 3.5 auf ihre ursprünglichen normalen Formate (d. H. python.exe
und pythonw.exe
) zurückgesetzt.OSError: Socket existiert nicht mehr (Python IDLE Fehler)
Nach all dem Chaos, laufen i print("Hello World")
im IDLE und federt den folgenden Fehler auf:
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
Die DLLs wurden nicht durch Umbenennen der ausführbaren Datei erstellt. Python 3.5 installiert python35.dll nicht mehr im System32-Verzeichnis, wenn es für alle Benutzer installiert wird. Es ist immer neben python.exe. Installationen pro Maschine sind jetzt standardmäßig auf "Programme [(x86)]" eingestellt, das bevorzugte und sichere Verzeichnis für Programme. – eryksun