it-swarm.com.de

Wie verknüpfe ich die ActiveState-Distribution von Tcl/Tk mit dem in HomeBrew installierten Python?

Ich verwende macOS 10.12.1 Sierra. Ich benutze Python 2.7.12, das mit installiert wird

brew install python

aber der IDLE gibt die Warnung

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.

und tatsächlich stürzte es häufig ab. 8.5.9 ist die vorinstallierte macOS-Version.

Ich kann den stable 8.5.18 von der ActiveState - Website herunterladen (wie von python empfohlen), die mit den Python - Installationen von python.org funktioniert (da sie vor dem erneuten Suchen nach einer anderen Version von Tcl/Tk suchen auf den instabilen macOS-Standard 8.5.9). 

Dieser Download wirkt sich jedoch nicht auf den installierten Python IDLE aus, der weiterhin 8.5.9 verwendet.

Gibt es etwas, was ich tun kann, um das aktualisierte Tcl/Tk mit Homebrew zu verlinken, oder kann ich Tcl/Tk direkt mit Homebrew installieren?

Ich habe auch bemerkt, dass genau das gleiche Problem bei der Verwendung von Anaconda Python auftritt, das den vorinstallierten mac tcl/tk 8.5.9 verwendet, nicht den vom Benutzer installierten tcl/tk 8.5.18

25
tburrows13

tcl-tk kann über Homebrew installiert werden, und der Homebrew-Python kann mit dieser Version (Homebrew installiert) von tcl-tk verknüpft werden.
Das einzige " barrier " dazu ist das Aktivieren des rechten Homebrew tap , da tcl-tk nicht in den "default" - Abgriffen in Homebrew gefunden wird.
Tatsächlich wird tcl-tk in dem Tap namens Homebrew-dupes gefunden, das Folgendes enthält (zitieren Sie die Seite)

formeln, die von macOS bereitgestellte Software duplizieren, können jedoch neuere oder Bugfix-Versionen enthalten. 

Hier der Link zu Homebrew-Dupes:
https://github.com/Homebrew/homebrew-dupes
und hier die Formel für tcl-tk
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb

Das vollständige Rezept zur Lösung des Problems wäre also:

  1. Aktivieren/Installieren Sie den Homebrew-Dupes-Tap
  2. Installieren Sie tcl-tk
  3. Installieren Sie den homebrew Python mit homebrew tcl-tk 

Die auszuführenden Befehle folgen: 

  1. brew tap homebrew/dupes
  2. brew install tcl-tk
  3. brew install python --with-tcl-tk
2
fedepad

Homebrew ist ein hervorragender Paketmanager. Während der Installation eines Pakets wird empfohlen, die Informationen anzuzeigen. 

brew info python 

zeigt viele Optionen, die übergeben werden können; aber das wichtigste ist 

--with-tcl-tk 

Benutze Homebrews Tk anstelle von macOS Tk (hat optionale Unterstützung für Cocoa und Threads)

1
Sarvex

Ich kann mir ein paar unordentliche Lösungen vorstellen -

1) Geben Sie den tatsächlichen Standort des installierten Moduls am Anfang des Pfads ein 

import sys

sys.path.insert(1, 'YourTclLocation')

2) Fügen Sie den neuen Speicherort hinzu und entfernen Sie den vorherigen Speicherort

import sys
sys.path.append('YourTCLLocation')
sys.path.remove('ProblemLocation')
import Tcl

3) Setzen Sie die Umgebungsvariable PYTHONPATH in Bash und stellen Sie sicher, dass die fehlerhafte Position nicht vorhanden ist 

0
Illusionist