WARNUNG: Die verwendete Version von Tcl/Tk (8.5.9) ist möglicherweise instabil

Ich verwende macOS Sierra 10.12.2 und versuche, Pythons IDLE dazu zu bringen, ordnungsgemäß mit Tcl/Tk zu arbeiten. Dies ist die Fehlermeldung, die ich erhalte, wenn ich IDLE öffne:

Python 2.7.13 (default, Dec 18 2016, 07:03:39) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.

Beim Aufrufen des Links in der Fehlermeldung habe ich die Dokumentation gelesen und Tcl/Tk-Version 8.5.18.0 von dieser Quelle installiert. Vielleicht ist es wichtig zu beachten, dass ich eine brewInstallation von Python 2.7.13 ausführe. Nachdem ich die DMG für 8.5.18.0 installiert habe, erkennen das Bash-Terminal und Python das Tcl/Tk-Upgrade nicht (Beachten Sie, dass es Tcl/Tk (8.5.9) anstelle von 8.5.18.0 erkennt. Wie bekomme ich IDLE und die aktualisierte Python-Installation von Homebrew, um das aktualisierte Tcl/Tk 8.5.18.0 zu erkennen?Mit anderen Worten, wie kann ich die Warnmeldung beheben?

Entschuldigung, wenn ich Ihre Frage falsch verstanden habe, aber neben der Tatsache, dass Sie die Warnung erhalten : Die verwendete Version von Tcl/Tk (8.5.9) ist möglicherweise instabil , hatten Sie tatsächlich Probleme mit der Verwendung von Pythons IDLE, um richtig damit zu arbeiten? Tcl/TK 8.5.9?
Es ist fehlerhaft - ich hatte mehrere unerwartete Abstürze.
Danke. Wie ich sehe, verwenden Sie Python 2.7.13. Gibt es einen Grund, warum Sie diese Version anstelle von beispielsweise Python 3.6.0 ausführen?
Es ist die neueste Version von Python 2.7, die mit installiert brewist, was ich Python 3 bevorzuge. Laut python.org/download/mac/tcltk ist es auch die empfohlene Python-Version, um gut mit der ActiveTcl 8.5.18.0-Version zu spielen .

Antworten (3)

Laut dieser Seite der Python Software Foundation :

Die von dieser Website heruntergeladenen Python-Installationsprogramme für Mac OS X verknüpfen sich zur Laufzeit dynamisch mit Tcl/Tk-MacOS-Frameworks. Die Hauptversion von Tcl/Tk wird bestimmt, wenn das Installationsprogramm erstellt wird, und kann nicht überschrieben werden. Die Python 64-Bit/32-Bit Mac OS X-Installationsprogramme für Python 3.6.x, 3.5.x und 2.7.x stellen eine dynamische Verknüpfung zu Tcl/Tk 8.5-Frameworks her. Nur-32-Bit-Python-Installationsprogramme für Mac OS X verknüpfen sich dynamisch mit Tcl/Tk 8.4-Frameworks.

In beiden Fällen erfolgt die dynamische Verknüpfung, wenn tkinter (Python 3) oder Tkinter (Python 2) zum ersten Mal importiert wird (insbesondere das interne _tkinter C-Erweiterungsmodul). Standardmäßig sucht der dynamische Linker von macOS zuerst in /Library/Frameworks nach Tcl- und Tk-Frameworks mit der richtigen Hauptversion. Dies ist der Standardspeicherort für Frameworks von Drittanbietern oder aus Quellcode erstellte Frameworks, einschließlich der ActiveTcl-Versionen. Wenn dort keine Frameworks der richtigen Hauptversion gefunden werden, sucht der dynamische Linker nach derselben Version in /System/Library/Frameworks, dem Speicherort für von Apple bereitgestellte Frameworks, die mit macOS geliefert werden. (Beachten Sie, dass Sie Dateien in /System/Library normalerweise nicht ändern oder löschen sollten.)

Quelle: Suchen Sie auf https://www.python.org/download/mac/tcltk/#activetcl-8-5-18-0 nach der Unterüberschrift „Wie Python die zu verwendende Tk-Bibliothek auswählt“.

Aus diesem Grund bin ich mir zu 99,9 % sicher, dass Sie jetzt auf Tcl/Tk 8.5.18.0 aktualisiert haben, was Sie tun müssen, ist, Python 2.7.13 neu zu installieren.

Der Grund, warum ich glaube, dass dies Ihr Problem lösen wird, ist, dass beim Lesen der von mir zitierten Informationen klar ist, dass die von Python verwendete Tcl/Tk-Version während des Installationsprozesses ausgewählt wird und nicht geändert werden kann, ohne Python erneut zu installieren.

2018-Aktualisierung

Vom System bereitgestelltes python/tcl-tk zeigt diesen Fehler immer an.

Sie KÖNNTEN ein aktualisiertes tcl-tk und eine aktualisierte Python -Installation herunterladen (Python muss neu installiert werden, um an das neue tcl-tk zu binden - installieren Sie zuerst tcl/tk!).

Meine BEVORZUGTE Methode ist die Verwendung von Homebrew .

Deinstallieren Sie die Entwicklungsversion von tcl-tk

brew uninstall tcl-tk --devel

tcl-tk installieren

brew install tcl-tk

Python und Python3 deinstallieren (tcl-tk-Bindung erfolgt, wenn Python installiert ist, also müssen wir neu installieren, sobald wir tcl-tk installiert haben)

brew uninstall python
brew uninstall python3

Python und Python 3 neu installieren

brew install python
brew install python3

prüfen

brew test python
brew test python3

test IDLE ("idle" zeigt auf systeminstalliertes python/tcl-tk, wir werden das nicht mehr verwenden, können es aber genauso gut dort lassen, um zukünftige Probleme zu vermeiden)

idle2
idle3
Jawohl. Es funktioniert (Catalina 10.15.4)

Diese Lösung von Stack Overflow hat das Problem behoben:

brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk
Dies ist nicht mehr möglich, da die Option --with-tcl-tkverschwunden ist.
Der Befehl brew tap homebrew/dupesist ebenfalls veraltet