[PYTHON] Je veux déposer un fichier sur tkinter et obtenir son chemin [Tkinter DnD2]

Je sens que je peux le faire.

C'est un robinet. Je ne suis généralement pas ingénieur ou quoi que ce soit. Je n'en ai pas vraiment besoin, mais les fenêtres de la rue Habituellement, lorsque je dépose un fichier, j'ai l'impression qu'il fait quelque chose.

Tkinter ressemblait aussi à "Je peux le faire". Eh bien, si vous déposez le fichier normalement, rien ne se passe.

Cette fois, il n'était pas répertorié dans Qiita (peut-être que je ne l'ai tout simplement pas trouvé) J'ai décidé de l'afficher ici pour ne pas avoir à faire les mêmes démarches à l'avenir.

environnement

Windows10 64bit python3.7

TkinterDnD2 Apparemment, en utilisant TkinterDnD2 en plus de Tkinter Il semble que vous pourrez recevoir les fichiers déposés.

Alors, pourquoi pas simplement "pip install" comme d'habitude? J'ai pensé.

ERROR: Could not find a version that satisfies the requirement tkinterdnd2 (from versions: none)
ERROR: No matching distribution found for tkinterdnd2```

 cela n'a pas fonctionné.

## Installation de TkinterDnD2
 Après avoir surfé sur Internet, je suis enfin arrivé sur ce site.
 J'ai en quelque sorte téléchargé le plus récent depuis [ici](https://sourceforge.net/projects/tkinterdnd/files/TkinterDnD2/).

 Lorsque vous décompressez celui téléchargé, il y a beaucoup de fichiers.
 Ceci est un gâchis. Que devrais-je faire?

 Quand je surfe à nouveau sur Internet
 __ "Mettez le dossier TkinterDnD2 dans votre dossier site-packages" __.

 Il y avait certainement un dossier appelé __ "TkinterDnD2" __ dans celui décompressé.
 Je vois, déplacez ceci vers les packages de site ...
 Je me suis arrêté à ce moment-là.
 __ Où sont ces packages de sites? __

## Je ne connais pas l'emplacement des packages de sites
 Je me souviens que les packages de site sont l'endroit où sont placés les personnes qui l'obtiennent par pip install.
 Et j'y suis allé plusieurs fois, mais honnêtement, je ne me souvenais de rien.

 Encore une fois, j'ai surfé sur Internet.
 J'ai pu obtenir le chemin d'accès aux packages de site en exécutant la commande suivante à l'invite de commande.
 Merci, Internet.
 [Merci Tonks! ](Https://qiita.com/jaguti/items/be36b6a4f0260be2d044)

 1. Démarrez "Spécifier le fichier et exécuter" avec la touche Windows + R
 2. Tapez cmd et cliquez sur "OK"
3.python -c "import site; print (site.getsitepackages())"

## Après tout, je ne peux pas!
 Je pensais que j'étais enfin capable de glisser-déposer après une période difficile
 Je n'ai pas pu recevoir d'erreur normalement.
 Apparemment, en plus de TkinterDnD2, vous avez besoin de __tkDnD2__.

 Il semble que tk soit une abréviation, mais il semble que ces deux choses soient complètement différentes.
 Java et JavaScript sont des choses complètement différentes, et je veux que vous arrêtiez de le faire.

## Installation de tkDnD2
 Depuis [ici](https://sourceforge.net/projects/tkdnd/files/Windows%20Binaries/TkDND%202.8/), "tkdnd2.8-win32-x86_64.tar.gz" qui devrait être compatible avec 64 bits Je l'ai téléchargé.
 C'était un type de compression invisible appelé fichier gz, mais Lhaplus l'a facilement décompressé.
 Lorsque je l'ai décompressé, j'ai à nouveau récupéré beaucoup de fichiers.

 Cette fois, il semble que tout sera copié dans le dossier suivant.
 __ (Omis) \ Programmes \ Python \ Python37 \ tcl \ tkdnd__
 Il existait déjà jusqu'à tcl.
 Je n'avais pas tkdnd, alors je l'ai créé moi-même.

## J'ai le chemin du fichier déposé!
 ![uma.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311431/2a6ec25c-9ea0-24b5-b604-15074789b45f.gif)
 Cette fois, j'ai trouvé le chemin de la vidéo et j'ai essayé de la dessiner sur la toile.
 Cela ne semble d'aucune utilité en l'état, mais il semble logique de le combiner avec quelque chose.


Recommended Posts

Je veux déposer un fichier sur tkinter et obtenir son chemin [Tkinter DnD2]
Je veux enregistrer les entrées / sorties de fichiers sous Linux
Je veux écrire dans un fichier avec Python
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
Je veux écrire un élément dans un fichier avec numpy et le vérifier.
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Je veux trouver un package populaire sur PyPi
Je veux échantillonner au hasard un fichier avec Python
Je reçois "trop tôt pour créer une image" sur tkinter
[Python] Je souhaite obtenir un ensemble commun entre numpy
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
Gratter et manger des bûches - je veux trouver un bon restaurant! ~ (Travail)
Je veux créer un fichier pip et le refléter dans le menu fixe
Je veux pirater Robomaster S1 ① Vérification de l'enracinement et de la configuration des fichiers
Je veux obtenir des informations de fstab à la destination de la connexion ssh et exécuter la commande
Je veux créer un histogramme et superposer la courbe de distribution normale dessus. édition matplotlib
Je souhaite extraire les informations d'étiquette (titre et artiste) d'un fichier de musique (flac, wav).
[Python Kivy] Comment obtenir le chemin du fichier par glisser-déposer
[Mémo Python] Je souhaite obtenir un nombre hexadécimal à 2 chiffres à partir d'un nombre décimal
Je veux créer un environnement Python
Je veux utiliser Linux sur mac
Je souhaite recevoir le fichier de configuration et vérifier si le fichier JSON généré par jinja2 est un JSON valide
Obtenez le chemin d'accès au fichier d'unité systemd
Je veux formater et vérifier le code Python à mon goût sur VS Code
Je souhaite développer des applications Android sur Android
Je souhaite créer une application Web en utilisant React et Python flask
J'ai un package Python privé mais je souhaite installer pipenv sur GitHub Actions et créer une image Docker
Je souhaite générer un diagramme de chemin d'analyse de structure distribuée co-distribuée (SEM) en reliant Python et R.
Je souhaite afficher uniquement différentes lignes du fichier texte avec diff
Essayez d'obtenir une page Web et un fichier JSON en utilisant la bibliothèque Requests de Python
Je veux juste ajouter scipy, mais c'est un mémo amusant. Ubuntu, Python 3.
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Je veux exécuter et distribuer un programme qui redimensionne les images Python3 + pyinstaller
Je souhaite convertir du texte horizontal en texte vertical et le publier sur Twitter, etc.
Je veux faire de matplotlib un thème sombre
Je souhaite créer facilement un modèle de bruit
Je veux créer une fenêtre avec Python
Je veux faire un jeu avec Python
Je ne veux pas passer un test de codage
Je veux obtenir les données de League of Legends ③
Je veux obtenir les données de League of Legends ②
Je souhaite créer un type d'implémentation pouvant être branché
Je veux faire pyenv + pipenv même sous Windows
J'ai créé un outil pour obtenir de nouveaux articles
Je veux trouver facilement une délicieuse boutique
Je veux obtenir les données de League of Legends ①
Je souhaite télécharger une application Django sur heroku
Je souhaite utiliser une source de données python dans Re: Dash pour obtenir les résultats de la requête.
Chaque fois que j'essaye de lire un fichier csv en utilisant des pandas, j'obtiens une erreur numpy.
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
[Notes] ① Obtenez et enregistrez des tweets ~ Je veux identifier les tweets d'actualité qui seront diffusés ~
Je veux voir le nom de fichier de DataLoader
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux répéter plusieurs fois un générateur Python