2016-06-07 9 views
1

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 
+0

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

Antwort

1

so dass ich nur die Python 3.5.1 Setup wieder installiert und die Dinge sind und laufen.

+0

Wenn jemand eine Idee darüber hat, warum der Fehler überhaupt aufgetreten ist, kann er gerne eine Antwort schreiben. – snow

+0

Benennen Sie die ausführbaren Dateien nicht um, da .py- und .pyw-Dateien den [py.exe und pyw.exe-Startprogrammen] (https://docs.python.org/3/using/windows) zugeordnet sind (und sein sollten). html # python-launcher-for-windows), die die Registry benutzen, um installierte Interpreter zu finden und python.exe oder pythonw.exe auszuführen. Sie können * Kopien * mit Namen wie "python2.7.exe" und "python3.5.exe" erstellen, wenn Sie möchten, und "PATH" verwalten, um auszuwählen, welche "python.exe" bevorzugt wird. Oder verwenden Sie einfach 'py.exe' und setzen Sie' PY_PYTHON = 2' oder 'PY_PYTHON = 3', um den Standard auszuwählen. Führen Sie 'py -X [.Y [-32]]' aus, um den Standardwert zu überschreiben. – eryksun

0

Ich war auch mit dem gleichen Problem konfrontiert.Dieser Fehler ausgelöst durch die Benennung meiner Datei als "Sammlungen". Das heißt, wenn Sie Ihre Dateien als eingebaute Funktion, Schlüsselwort, Modul usw. benennen, wird dieser Fehler auftreten.

Lösung für diesen Fehler ist, überprüfen Sie, ob Sie irgendeine Datei durch eine eingebaute Funktion, Schlüsselwort, Modul usw. erstellt haben. Wenn ja, dann benennen Sie den Dateinamen, der nicht mit einem Python-Schlüsselwort verwandt ist. Es wird wie erwartet funktionieren.

Verwandte Themen