Le nom du fichier était mauvais en Python et j'étais accro à l'importation

J'ai essayé un petit test et je suis devenu accro à lui donner le même nom que le module que je voulais importer. C'est peut-être du bon sens, mais je ne le savais pas, alors je vais en prendre note.

Erreur

Supposons que vous souhaitiez tester le module mathématique et écrire un fichier appelé math.py.

math.py


import math
print(math.pi)

Cela entraînera une erreur.

Résultat d'exécution


$ python math.py
Traceback (most recent call last):
  File "math.py", line 1, in <module>
    import math
  File "/home/xxxx/math.py", line 2, in <module>
    print(math.pi)
AttributeError: partially initialized module 'math' has no attribute 'pi' (most likely due to a circular import)

Référence circulaire à vous-même

La cause est que je me suis importé et que je l'ai diffusé comme indiqué dans l'erreur.

(most likely due to a circular import)

Je ne le savais pas tout de suite, alors j'ai essayé d'y mettre une empreinte.

math.py


print("math")
import math
print(math.pi)

Résultat d'exécution


$ python math.py
math
math
Traceback (most recent call last):
  File "math.py", line 2, in <module>
    import math
  File "/home/xxxx/math.py", line 3, in <module>
    print(math.pi)
AttributeError: partially initialized module 'math' has no attribute 'pi' (most likely due to a circular import)

math s'affiche deux fois. Enfin, je savais que je faisais référence à moi-même.

La deuxième importation du même fichier est ignorée, alors continuez et obtenez une erreur car math.pi est manquant.

Conclusion

Cela fonctionne si vous modifiez le nom du fichier. Évitez le même nom de fichier que celui que vous souhaitez importer.

Recommended Posts

Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Ce que j'étais accro à Python autorun
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Une histoire sur l'écriture d'AWS Lambda et de devenir un peu accro aux valeurs par défaut des arguments Python
Python: j'ai pu récurer en lambda
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Je veux afficher la progression en Python!
L'intelligence de Numpy (saisie complète) est incomplète dans VS Code et j'étais légèrement accro à la solution
Erreur d'importation: impossible d'importer le nom 'Flask' lorsque le nom de fichier est flask.py dans Flask
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
Mémorandum Python: reportez-vous au texte et modifiez le nom du fichier lors de la copie du fichier cible
Je veux voir le nom de fichier de DataLoader
J'ai essayé de représenter graphiquement les packages installés en Python
Comment obtenir le nom de la variable lui-même en python
J'ai essayé de toucher un fichier CSV avec Python
Je veux échantillonner au hasard un fichier avec Python
Je veux écrire en Python! (3) Utiliser des simulacres
Python: peut être répété en lambda
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Je veux utiliser le jeu de données R avec python
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Je pensais que c'était la même chose que python, et j'étais accro au problème que l'interpréteur ruby ne démarre pas.
J'étais sobrement accro à appeler awscli à partir d'un script Python 2.7 enregistré dans crontab
Notez que j'étais accro au script npm ne passant pas dans l'environnement de vérification
Ce à quoi j'étais accro en combinant l'héritage de classe et l'héritage de table commune dans SQLAlchemy
[python] Remplacez le nom du fichier image par un numéro de série
Obtenez le type MIME en Python et déterminez le format de fichier
Comment importer des fichiers où vous le souhaitez en Python
J'ai essayé d'illustrer le temps et le temps du langage C
[Note] Importation de fichiers dans le répertoire parent en Python
J'ai essayé de programmer le test du chi carré en Python et Java.
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
Je veux connaître la nature de Python et pip
J'ai essayé d'énumérer les différences entre java et python
Essayez de déchiffrer les caractères déformés dans le nom du fichier joint avec Python
[Réparer] J'étais accro au jugement alphanumérique des chaînes Python
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
Dans la commande python, python pointe vers python3.8
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom
J'ai écrit la file d'attente en Python
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Obtenez le nom d'hôte en Python
Une histoire à laquelle j'étais accro en spécifiant nil comme argument de fonction dans Go
J'étais accro au multitraitement + psycopg2
J'ai écrit la pile en Python
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Le record auquel j'étais accro en mettant MeCab dans Heroku
Recherchez le nom du fichier, y compris le mot et l'extension spécifiés dans le répertoire
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
J'ai écrit le code pour écrire le code Brainf * ck en python
Je veux faire de la deuxième ligne le nom de la colonne dans pandas
Formatez le journal Git et obtenez le nom du fichier validé au format csv
Comment afficher les octets de la même manière en Java et Python