Seltsame und schreckliche Python-Fehlergeschichte

Hinweis) Es ist eine Geschichte für Anfänger, vorsichtig mit den Importspezifikationen umzugehen.

Als ich eine bestimmte Funktion in Python getestet habe.

Der folgende Beispielcode, der gestern funktionierte, gab plötzlich einen Fehler aus. Die Umgebung ist pyenv + pipenv + python3.7 + Google Cloud SDK (Dies ist der Code zum Schreiben in den Google Firestore.)

insert.py


from google.cloud import firestore

db = firestore.Client()
db.collection(u'users').document().set({
    u'first': u'oda',
    u'last': u'nobunaga',
    u'born': 1534
})

Der Inhalt des Fehlers ist wie folgt

>> pipenv run insert
Loading .env environment variables...
Traceback (most recent call last):
  File "insert.py", line 1, in <module>
    from google.cloud import firestore
  File "/mnt/v01/workspace/sandbox-python-firestore/.venv/lib/python3.7/site-packages/google/cloud/firestore.py", line 18, in <module>
    from google.cloud.firestore_v1 import __version__
  File "/mnt/v01/workspace/sandbox-python-firestore/.venv/lib/python3.7/site-packages/google/cloud/firestore_v1/__init__.py", line 17, in <module>
    from pkg_resources import get_distribution
  File "/mnt/v01/workspace/sandbox-python-firestore/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 33, in <module>
    import platform
  File "/home/dev-user/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/platform.py", line 116, in <module>
    import sys, os, re, subprocess
  File "/home/dev-user/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/subprocess.py", line 140, in <module>
    import select
  File "/mnt/v01/workspace/sandbox-python-firestore/select.py", line 3, in <module>
    db = firestore.Client()
AttributeError: module 'google.cloud.firestore' has no attribute 'Client'

Ich denke, Leute, die Python regelmäßig lieben, fühlen sich ein bisschen, aber ich habe ein schlechtes Gefühl, weil es ein Importfehler ist, wenn pyenv und pipenv gleichzeitig verwendet werden.

Aber gestern hat es gut funktioniert. Ich mache mir auch Sorgen um gcloud auth.

Hier fällt mir etwas Seltsames auf.

  File "/mnt/v01/workspace/sandbox-python-firestore/select.py", line 3, in <module>
    db = firestore.Client()

Warum,

Es gibt ./select.py, die Sie nicht anrufen sollten. Natürlich habe ich select.py in ./ früher als Beispielcode erstellt.

Nach dem Entfernen dieser ./select.py funktioniert das Programm einwandfrei.

Nach alldem

Es scheint, dass select.py im aktuellen Verzeichnis von subprocess.py aufgerufen wurde, das während der Verarbeitung verwendet wurde.

Diesmal war es gut, weil es ein Beispielprogramm war, das ich selbst geschrieben habe, aber ich fragte mich, ob es notwendig war, auf den Dateinamen zu achten, insbesondere bei der Entwicklung eines Teams mit Python, und es war ein Fehler, dass eine kalte Sache auf meinem Rücken lief.

Recommended Posts

Seltsame und schreckliche Python-Fehlergeschichte
Die Geschichte von Python und die Geschichte von NaN
Eine Geschichte über Python Pop und Append
Python-Fehlerbehandlung
Eine Geschichte über das Ändern von Python und das Hinzufügen von Funktionen
[Python] Komprimieren und dekomprimieren
Python- und Numpy-Tipps
[Python] Pip und Wheel
Die Geschichte von Python ohne Inkrement- und Dekrementoperatoren.
Python Iterator und Generator
Python nicht implementiert Fehler
Der heutige Python-Fehler: getötet
Python-Pakete und -Module
Vue-Cli- und Python-Integration
[Python] Typfehler: Zusammenfassung der Ursachen und Abhilfemaßnahmen für 'Kein Typ'
Python kleine Geschichte Sammlung
pytube Ausführung und Fehler
Golang Fehler und Panik
Python-Eingabe und Ausgabe
Python und Ruby teilen sich
Python asyncio und ContextVar
[Python] für Anweisungsfehler
Ich habe einen Fehler in vim oder zsh in der Python 3.7-Serie
Programmieren mit Python und Tkinter
Python: Klassen- und Instanzvariablen
Python 2-Serie und 3-Serie (Anaconda Edition)
Python und Hardware-Verwenden von RS232C mit Python-
Python-Einzug und String-Format
Python Real Number Division (/) und Integer Division (//)
Installieren Sie Python und Flask (Windows 10)
Geschichte beim Iterieren des Python-Tupels
Informationen zu Python-Objekten und -Klassen
Informationen zu Python-Variablen und -Objekten
Apache mod_auth_tkt und Python AuthTkt
Å (Ongustorome) und NFC @ Python
Lernen Sie Python-Pakete und -Module kennen
# 2 [python3] Trennung und Kommentar aus
Flache Python-Kopie und tiefe Kopie
Python und Ruby Slice Memo
Python-Installation und grundlegende Grammatik
Ich habe Java und Python verglichen!
[Python] Memorandum zur Vermeidung von SQLAlchemy-Fehlern
Stolpern Geschichte mit Python-Array
Über Python, len () und randint ()
Informationen zu Python-Datums- und Zeitzone
Python-Umgebungskonstruktion und TensorFlow
Python-Klassen- und Instanzvariablen
[Python] Python und Sicherheit - is Was ist Python?
Python-Metaklasse und SQLalchemie deklarativ
Fehler beim Spielen mit Python
#python python Vermeidung japanischer Syntaxfehler
Implementierung von Fibonacci und Primzahlen (Python)
Python-Grundlagen: Bedingungen und Iterationen
GAE + Python + Django süchtig machende Geschichte
Python-Bitoperator und logische Summe
Python-Debug- und Testmodul
Python-Liste und Tapples und Kommas
Python-Variablen und Objekt-IDs
Python-Listeneinschlussnotation und Generator