Saltar al contenido

TKinter en un Virtualenv

Solución:

Establezca la variable de entorno TCL_LIBRARY en su activate texto. En Windows (Python 2.7 con Tcl 8.5), simplemente agregue esta línea a Scriptsactivate.bat:

set "TCL_LIBRARY=C:Python27tcltcl8.5"

@Jasper van den Bosch’s edit: En Ubuntu, la modificación del script activate es el siguiente:

TK_LIBRARY=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib
TKPATH=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib 
TCL_LIBRARY=/usr/lib 
export TCL_LIBRARY TK_LIBRARY TKPATH

La referencia de esto se puede encontrar en esta pregunta en askubuntu

Me las arreglo para integrar tkinter en python3 a virtualenv por symlink tkinter carpeta a virtualenv python3. Trabaja para mi Pero no sé si es la forma correcta.

  1. Instalar en pc tkinter
sudo apt-get install python3-tk
  1. ve a la carpeta lib de python de tu virtualenv
cd ~/.virtualenvs/cv/lib/python3.4/
  1. vincular el tkinter
ln -s /usr/lib/python3.4/tkinter tkinter

Espero que esto ayude.

En versiones posteriores de Python, esto puede resultar en un

ModuleNotFoundError: No module named '_tkinter'

En este caso, asegúrese de incluir también el enlace simbólico
/usr/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so

como

path/to/virtualenv/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so

utilizando

ln -s /usr/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so _tkinter.cpython-36m-x86_64-linux-gnu.so

desde dentro de tu virtualenv lib/python3.x/lib-dynload/ directorio.

Estoy usando python2.7 con un virtualenv en una máquina que ejecuta linux mint. Recibí exactamente el mismo error mencionado por el OP al ejecutar una aplicación que requería matplotlib en mi virtualenv. “ImportError: Ningún módulo llamado _tkinter, instale el paquete python-tk”

Terminé eliminando y recreando mi entorno virtual usando las sugerencias en las publicaciones anteriores. Estos son mis pasos:

  1. Si su entorno virtual está activado, ejecute este comando para congelar los requisitos en un archivo al que puede acceder más tarde:
    pip freeze > requirements.txt
  2. si su entorno virtual está activado, desactívelo usando:
    deactivate
  3. elimine su carpeta virtualenv.
  4. instale python-tk usando:
    sudo apt-get install python-tk
  5. recrea tu virtualenv usando:
    virtualenv <nameofyourenv> --system-site-packages
  6. a continuación, active su virtualenv:
    source <virtual environment folder>/bin/activate
  7. restaure todos los paquetes que congeló anteriormente desde el archivo requirements.txt:
    pip install -r <path to requirements.txt file>

ahora, cuando ejecuto el mismo código que antes, no tiene problemas para importar _tkinter. ¡Espero que esto ayude! Gracias a las sugerencias de todos arriba. Realmente me ayudó mucho.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *