1
votes

Modules introuvables - Je ne peux pas exécuter en externe un fichier .py développé à l'aide de PyCharm

J'utilise PyCharm pour développer un projet python, qui utilise une bibliothèque externe appelée win10toast. J'ai installé win10toast en utilisant PyCharm. Cependant, lorsque j'ai essayé d'exécuter le fichier .py en utilisant cmd (c'est-à-dire en exécutant en externe le fichier python), une erreur apparaît:

from win10toast import ToastNotifier

J'ai python 3.6.4. J'ai installé win10toast en utilisant PyCharm.

ModuleNotFoundError: No module named 'win10toast'.

Je m'attends à ce que le programme s'exécute sans aucune erreur, mais actuellement j'obtiens l'erreur ModuleNotFound.


2 commentaires

Je ne suis pas familier avec pycharm mais il peut conserver les bibliothèques localement pour ne pas interférer avec votre système. Peut-être qu'à partir du terminal, vous pouvez exécuter pip install win10toast avant d'exécuter votre fichier .py.


Je vous suggère de ne pas utiliser PyCharm pour installer des packages, du moins si le résultat ne correspond pas à une "installation pip" sur la ligne de commande. Je ne vois aucune raison d'impliquer PyCharm dans la configuration des installations Python. J'admets que je ne suis pas sûr de ce dont je parle, car j'utilise PyCharm depuis des années et je n'ai jamais rien fait d'autre que d'installer des modules Python en ligne de commande pour que je sois bien sûr où ils vont.


3 Réponses :


2
votes

Python peut être difficile à exécuter correctement car il est sensible à l'endroit où vous avez installé vos dépendances (comme les bibliothèques externes et les packages). Si vous avez installé Python dans un répertoire, mais que vous avez accidentellement installé la bibliothèque externe dans un autre répertoire, lorsque vous exécutez votre programme .py, il ne pourra pas appeler à partir de la bibliothèque externe car il n'existe pas dans la même bibliothèque que Python exécute de.

Recherchez où vous avez installé Python sur votre ordinateur, puis recherchez où vous avez installé la bibliothèque externe. Une fois que vous avez trouvé où vous avez installé la bibliothèque externe, déplacez tout le contenu de son package dans le même répertoire où Python est installé. Ou mieux encore, réinstallez la bibliothèque externe avec pip dans le même répertoire que Python.

Si vous êtes sur Mac, Python et ses dépendances associées sont généralement stockés quelque part dans / User / bin. Si vous êtes sous Windows, il sera stocké quelque part dans votre répertoire C: // (éventuellement quelque part dans C: \ Users \ username \ Local \ AppData). Si vous êtes sous Linux, il sera stocké quelque part dans / usr / bin. Quoi que vous fassiez, ne déplacez pas Python d'où qu'il se trouve car cela peut parfois gâcher votre système pour certains systèmes d'exploitation comme Mac, qui est livré avec sa propre version de Python (Python 2.7 je crois, qui est de toute façon obsolète).

Enfin, vous pouvez avoir deux versions différentes de Python sur votre ordinateur, ce qui est courant; Python 2.7 et Python 3+. Si vous avez écrit votre programme dans une version, mais que vous l'avez exécuté à partir de l'autre, la bibliothèque externe ne peut être appelée que depuis la version Python sur laquelle vous l'avez installée. Essayez d'exécuter votre programme .py avec python3 au lieu de python (ou vice versa) et voyez ce qui se passe. Si cela fonctionne avec une version de python par rapport à l'autre, cela vous indique que la bibliothèque externe est installée dans le répertoire de l'autre version.

Cela devrait résoudre votre problème.


0 commentaires

1
votes

Je vous suggère de ne pas utiliser PyCharm pour installer des packages, du moins pas si le résultat s'écarte le moins du monde d'une "installation pip" en ligne de commande. Je ne vois aucune raison d'impliquer PyCharm dans la configuration des installations Python. C'est juste demander des ennuis.

J'avoue que je ne suis pas familier avec la pratique que je vous suggère d'éviter. J'utilise PyCharm depuis à peu près la semaine de sa sortie (j'étais un utilisateur avide du plugin IntelliJ Python avant cela), et je n'ai jamais envisagé de faire autre chose que d'installer des modules Python en ligne de commande. De cette façon, je suis sûr où ces modules vont (dans quelle base Python install ou venv). De plus, je sais que je fais tout ce que je peux pour minimiser les différences que je pourrais voir entre l'exécution de code dans PyCharm et son exécution en ligne de commande. Je fais ma suggestion uniquement sur la base de cette pratique qui n'a jamais mal tourné pour moi.

J'ai plusieurs versions de base de Python installées, et des dizaines de venv définis en plus de celles-ci. PyCharm est excellent pour me permettre d'indiquer lesquels de ceux-ci je veux appliquer à n'importe quel projet ou configuration Exécuter / Déboguer, et de les utiliser de manière transparente. Mais encore une fois, j'administre ces environnements exclusivement en ligne de commande.

Je rencontre encore des problèmes pour basculer entre la ligne de commande et PyCharm en termes d'un module référençant d'autres dans une seule arborescence source. Mon entreprise a mis au point une solution simple à ce problème qui garantit que tous nos scripts Python s'exécutent toujours lorsqu'ils s'éloignent de PyCharm et de sa logique de gestion du chemin Python dans un projet. J'ai déjà expliqué le mécanisme sur S.O. Je serais heureux de trouver cela si quelqu'un est intéressé.


1 commentaires

Ahh je vois. Merci d'avoir clarifié cela. J'ai toujours pensé que «l'environnement virtuel» de PyCharm était le véritable environnement Python, maintenant je sais que ce sont deux choses différentes et que beaucoup de choses commencent à avoir un sens.



0
votes

La bibliothèque win10toast installée dans le répertoire: YOUR_PYCHARM_WORKSPACE \ PycharmProjects \ YOUR_PROJECT_NAME \ venv \ Lib \ site-packages mais lorsque vous exécutez votre programme en utilisant cmd , l'interpréteur pycharm utilise le répertoire site-packages dans lequel vous avez installé python. pour Ex: C: \ Python27 \ Lib \ site-packages Ainsi, vous pouvez installer la bibliothèque win10toast dans ce répertoire Windows en utilisant pip .


0 commentaires