web-dev-qa-db-fra.com

Comment lier la distribution ActiveState de Tcl/Tk à HomeBrew installé Python

J'utilise macOS 10.12.1 Sierra. J'utilise Python 2.7.12 installé avec

brew install python

mais l'IDLE donne l'avertissement

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.

et bien sûr, il s'est écrasé fréquemment. 8.5.9 est la version préinstallée de macOS.

Je peux télécharger la version stable 8.5.18 à partir du site Web ActiveState (recommandé par python , qui fonctionne avec les installations python de python.org (car elles recherchent toute autre version de Tcl/Tk avant de recourir à MacOS instable par défaut 8.5.9). 

Cependant, ce téléchargement n’affecte pas le brasseur installé IDle python, qui continue à utiliser la version 8.5.9.

Est-ce que je peux faire quelque chose pour lier le Tcl/Tk mis à jour avec Homebrew, ou puis-je installer Tcl/Tk directement avec Homebrew?

J'ai également remarqué que le même problème se produit lors de l'utilisation d'Anaconda Python, qui utilise le mac préinstallé tcl/tk 8.5.9, et non le tcl/tk 8.5.18 installé par l'utilisateur.

25
tburrows13

tcl-tk peut être installé via Homebrew et le python installé par Homebrew peut être lié à cette version (Homebrew installée) de tcl-tk.
Le seul " obstacle " à cela, est d'activer le bon homebrew tap , car tcl-tk n'est pas trouvé dans les robinets "par défaut" de Homebrew.
En effet, tcl-tk se trouve dans le robinet appelé homebrew-dupes qui contient (cite la page)

les formules qui dupliquent les logiciels fournis par macOS peuvent toutefois fournir des versions plus récentes ou des corrections de bogues. 

Voici le lien vers les dupes homebrew:
https://github.com/Homebrew/homebrew-dupes
et voici la formule pour tcl-tk
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb

Donc, la recette complète pour résoudre le problème serait:

  1. Activer/Installer le robinet homebrew-dupes
  2. Installez tcl-tk
  3. Installer le python homebrew en utilisant homebrew tcl-tk 

Les commandes à exécuter sont les suivantes: 

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

Homebrew est un excellent gestionnaire de paquets et lors de l'installation de n'importe quel paquet, il est recommandé de voir l'info. 

brew info python 

montre beaucoup d'options qui peuvent être passées; mais le plus important est 

--with-tcl-tk 

Utilisez Tk de Homebrew au lieu de macOS Tk (supporte en option Cocoa et threads)

1
Sarvex

Je peux penser à quelques solutions en désordre -

1) Insérez l'emplacement réel du module installé au début du chemin 

import sys

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

2) Ajouter le nouvel emplacement et supprimer l'emplacement précédent

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

3) Définissez la variable d’environnement PYTHONPATH dans bash et assurez-vous qu’il n’a pas l’emplacement brisé. 

0
Illusionist