[PYTHON] Si vous pensez que l'environnement PyCharm est cassé, c'est à cause du nom du fichier

introduction

C'est parce que j'ai eu une erreur Fatal Python et que je pensais que l'environnement PyCharm était corrompu à cause du nom de fichier .py. Je veux penser qu'il y a des débutants.

environnement

Créez un environnement virtuel de python 3.7 avec Windows10 + Anaconda et exécutez-le avec PyCharm Cet article a été écrit par quelqu'un qui a déjà peur de python en raison des nombreuses difficultés qu'il a fallu pour arriver à cette combinaison.

Contexte de l'apparition de l'erreur

J'ai écrit le code suivant pour créer un fichier .py pour vérifier le fonctionnement de reprlib qui est sorti lors de mes études pour l'examen d'ingénieur Python3.

python


import reprlib
reprlib.repr(set('abcdefg'))

Il s'agit de deux lignes, donc si vous l'exécutez très facilement, vous obtiendrez une erreur. .. ..

python


Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
  File "C:\XXXXXXXX\Anaconda3\envs\py37\lib\site.py", line 168, in addpackage
    exec(line)
#(Omis)
  File "<Dossier de projet>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

Débit jusqu'à résolution d'erreur

Vérifiez le programme en cours d'exécution jusqu'à présent

Je pensais que ce n'était pas à cause du programme parce que c'était un programme selon l'exemple de l'examen, et je m'attendais à ce que l'environnement ait changé depuis la dernière fois que j'ai utilisé PyCharm. Donc, pour le moment, j'ai essayé de vérifier si le programme python qui était en cours d'exécution jusqu'à présent fonctionne.

python


a = 100
b = 50
c = a + b
print(c)

C'est juste un ajout,

python


Fatal Python error: initsite: Failed to import the site module
#(Omis)
  File "<Dossier de projet>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

Je n'utilise pas reprlib, mais j'obtiens exactement la même erreur qu'avant. ⇒ PyCharm ne peut pas charger le programme ...?

Demander à un enseignant Google

Lorsque j'ai recherché "Impossible d'importer le module de site", j'ai trouvé que la version python était différente, le chemin était faux et le nom du module était faux. Étant donné que PyCharm ne semble pas être en mesure de lire le programme, vérifiez les éléments suivants à partir d'Anaconda Navigator.

Réinstaller PyCharm

Je ne me souviens pas avoir modifié les paramètres par moi-même, alors j'ai décidé qu'il serait rapide d'essayer la réinstallation pour le moment. Désinstallez PyCharm → Réinstaller puis exécutez à nouveau le programme d'ajout.

python


Fatal Python error: initsite: Failed to import the site module
#(Omis)
  File "<Dossier de projet>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

«Nana» ou «Nana»

Recréer l'environnement virtuel

La connexion entre PyCharm et l'environnement virtuel est-elle étrange? J'ai pensé ~~ Yakekusode ~~ Recréer l'environnement virtuel avec un autre nom → Réinitialiser l'interpréteur de PyCharm et exécuter le programme d'ajout.

python


Fatal Python error: initsite: Failed to import the site module
#(Omis)
  File "<Dossier de projet>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

J'en ai assez de le voir.

Cache suspect

J'ai réinstallé PyCharm, mais y a-t-il quelque chose qui n'a pas été effacé lorsque je l'ai désinstallé? ?? Au fait, lorsque j'ai réinstallé, je suis allé lire Config. J'ai pensé et j'ai vérifié l'intérieur du dossier du projet PyCharm. Ensuite, j'ai trouvé un dossier suspect appelé \ _ \ _ pycache \ _ \ _! !! Ça y est ...! !!

Réinstaller PyCharm

Supprimé le dossier \ _ \ _ pycache \ _ \ _ et réinstallé PyCharm pour la deuxième fois aujourd'hui. J'ai prié pour que cela fonctionne parce que c'est devenu un bel environnement cette fois et j'ai exécuté le programme d'addition.

python


150

Process finished with exit code 0

Regardez! !! Et lancez le programme reprlib! !!

python


Fatal Python error: initsite: Failed to import the site module
#(Omis)
  File "<Dossier de projet>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

Oh mon Dieu. .. ..

Obtenez la révélation

Je suis sûr qu'il reste encore quelque chose, et quand je vérifie à nouveau le dossier du projet, je trouve un autre dossier \ _ \ _ pycache \ _ \ _. En parlant de cela, je me suis demandé ce qu'il y avait dedans.

reprlib.cpython-37.pyc

Hmm?

Qu'est-il arrivé

L'extension pyc est un fichier créé lors de la compilation de python. Calendrier de création:

  1. Première importation d'un module
  2. Lorsque le fichier pyc existe déjà après la deuxième importation du module, mais que l'horodatage est plus ancien que le fichier py. Référence: https://techacademy.jp/magazine/19131

Bien qu'il apparaisse dans le message d'erreur, le nom de fichier .py pour l'importation reprlib cette fois était reprlib.py. Quand ceci est exécuté, une nouvelle reprlib sera compilée sous le dossier de projet avec le même nom que le module cible d'importation, ainsi il semble que python est allé exécuter la nouvelle et n'a pas pu appeler la reprlib correcte. Je vais. (Synonyme de fabrication d'un module auto-fabriqué défectueux) Je ne sais pas pourquoi l'additionneur qui n'a pas importé reprlib n'a pas fonctionné non plus. .. .. Je suppose que la recherche .pyc dans le dossier du projet est peut-être effectuée avant le .py.

Solution

J'ai changé le nom du fichier .py pour import reprlib de reprlib.py en un nom différent, et c'était facile à exécuter. De plus, \ _ \ _ pycache \ _ \ _ normal est sous ~ \ Anaconda3 \ envs \ <nom de l'environnement virtuel> \ Lib for Anaconda. Si vous n'avez pas créé votre propre module mais qu'il se trouve dans le dossier du projet, vous devriez en douter.

Leçon

  1. Rendez le nom de fichier .py différent du nom de module existant.
  2. En savoir plus sur python avant qu'il ne fonctionne. (PyCharm n'a pas besoin d'être réinstallé si je cherchais ce qu'était pycache)

C'était pauvre.

Recommended Posts

Si vous pensez que l'environnement PyCharm est cassé, c'est à cause du nom du fichier
Quand vous pensez que la mise à jour de ManjaroLinux est étrange
Si vous voulez un singleton en python, considérez le module comme un singleton
Vérifiez le nom du fichier si l'importation Python vous dit que vous ne pouvez pas
nb_conda_kernels est recommandé si vous souhaitez entrer dans l'environnement virtuel avec jupyter
La description de la propriété en Python est étrange si vous regardez de près (ce n'est pas étrange si vous réfléchissez plus attentivement)
L'environnement de développement PySide / PyQt le plus puissant est également PyCharm
Spécifiez le nom du projet de docker-compose avec l'intégration Docker de Pycharm
Pensez à l'environnement d'analyse (Partie 1: Vue d'ensemble) * Depuis janvier 2017
Si __name__ == Levez la main, si vous écrivez le code sous '__ main__'
[Pandas speedup] Si vous pensez que la fusion est lente, utilisez la carte
Que faire si vous chattez ou suivez un fichier binaire et que le terminal est brouillé
Notez que lorsque le système d'exploitation hôte est Linux et que la version du noyau est mise à niveau, une erreur se produit lors du lancement de l'environnement virtuel de VirtualBox.