web-dev-qa-db-fra.com

tkinter dans Ubuntu sous Windows 10. Erreur: "pas de nom d'affichage et pas de variable d'environnement $ DISPLAY"

J'ai récemment installé l'application Ubuntu pour Windows 10 afin de pouvoir l'utiliser pour une classe.

Je suis en train de suivre quelques instructions d'affectation cryptiques pour "essayer tkinter".

J'ai installé le paquet python3-tk dans la fenêtre du terminal Ubuntu en suivant les instructions situées ici: Comment installer et utiliser Tkinter dans ubuntu/Debian/Linux mint .

Alors j'exécute

~$ python3

avec le résultat

Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.

puis les commandes suivantes:

>>> import tkinter
>>> tkinter.Tk()

Avec l'erreur résultante:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1871, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, 
wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
11
Zach

Résolu:

Remarque: c'est lorsque vous utilisez l'application Ubuntu dans Windows 10

Installer serveur Xming X pour Windows .

Pendant l'installation, il existe une option pour régler l'affichage sur 0.

Ajoutez la ligne export DISPLAY=:0; à .bashrc comme suggéré.

10
Zach

J'avais le même problème. J'ai récemment installé l'application "Bash sur Ubuntu sur Windows" à partir du magasin, et j'obtenais l'erreur suivante lors de l'exécution de mon script python qui tente de créer une interface utilisateur python:

_tkinter.TclError: no display name and no $DISPLAY environment variable

J'ai suivi les instructions de @Zach mais mon problème persiste. C'est ainsi que j'ai résolu mon problème après avoir suivi @Zach.

  1. J'ai d'abord installé Xming X Server pour Windows.
  2. Je suis ensuite allé dans mon répertoire personnel ~ Sur le terminal Ubuntu et j'ai ouvert mon fichier .bashrc en exécutant vim .bashrc.
  3. À la fin du fichier, j'ai ajouté la ligne suivante: export DISPLAY=:0;. Au lieu de "exécuter", j'ai utilisé "exporter".

Assurez-vous de fermer toutes les instances de terminal avant d'essayer d'exécuter le script python.

Et cela a fonctionné pour moi!

3
Haaris Memon