2016-05-04 13 views
6

I think la versione corta di questa domanda è: Come faccio a ottenere un virtualenv con Python 3.5 per puntare alla versione corretta di ActiveTcl su un Mac?Correzione di problemi con Python 3 tkinter su Mac con virtualenv


Ecco la versione più lunga:

Sto cercando di eseguire this Korg Electribe sample editor project su un Mac. L'autore ha testato solo su Windows e, in base agli screenshot, sembra funzionare. Sono stato in grado di eseguire bene lo script Python base, ma as I mention in an issue that I've opened, la finestra completa diventa nera dopo aver caricato un file.

Dopo aver fatto qualche ricerca, ho scoperto che c'è un known issue with Aqua Cocoa Tk e python.org ha provided some instrunctions su come risolvere tkinter per Mac OS 10.9 e superiori. Ho tentato di installare sia l'ActiveTcl suggerito (8.5.18.0) che la versione 8.6.x.x più recente senza successo.

Sono abbastanza sicuro che questo è un problema diverso da Tkinter not working mac osx el capitan, poiché lo script viene eseguito e la finestra viene disegnata correttamente all'avvio. È solo dopo che ho tentato di caricare un file .all (c'è un file di esempio nel problema Github) che lo schermo diventa nero.

Dopo un po 'di ricerche, ho trovato questa domanda che sembra legato, ma è specifico a Windows: TKinter in a Virtualenv

Sono sotto l'impressione che se riesco a capire cosa impostare TCL_LIBRARY a, che mi Sarò in grado di girare a testa alta, ma non riesco a trovare quelle informazioni per i pacchetti elencati su python.org.

in qualche modo correlato, sarebbe anche sembra essere utile se riuscivo a capire che versione di Tcl/Tk che tkinter sta puntando dal di dentro Python, quindi se qualcuno potesse aiutare in questo pure, mi piacerebbe molto apprezzalo.

Grazie!

+0

Hai mai capire questo? – Alex

+0

Ci sono stati alcuni aggiornamenti e commenti sul problema Github collegato sopra, ma non ho seguito per vedere se il problema è stato risolto, o quale fosse la causa. – Kevin

risposta

0

sono riuscito a utilizzare Tkinter in un virtualenv python3 su OSX 10.13 da:

  • installare il funzionario OSX Python 3 da https://www.python.org/
  • installazione ActiveTcl da https://www.activestate.com/activetcl
  • creazione di un nuovo virtualenv

    mkvirtualenv myenv --python=python3 
    
  • localizzare la posizione di tkinter nella directory Python3 ectory. Per me è stato qui:

    /usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter 
    
  • creare un collegamento simbolico nella biblioteca virtualenv che punta alla posizione Tkinter

    cd ~/.virtualenvs/myenv/lib/python3.6 
    ln -s /usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter tkinter