[PYTHON] Wenn Sie der Meinung sind, dass die PyCharm-Umgebung beschädigt ist, liegt dies am Dateinamen

Einführung

Dies liegt daran, dass ich einen schwerwiegenden Python-Fehler erhalten habe und dachte, die PyCharm-Umgebung sei aufgrund des .py-Dateinamens beschädigt. Ich möchte denken, dass es Anfänger gibt.

Umgebung

Erstellen Sie mit Windows 10 + Anaconda eine virtuelle Umgebung von Python 3.7 und führen Sie sie mit PyCharm aus Dieser Artikel wurde von jemandem geschrieben, der aufgrund der vielen Schwierigkeiten, die nötig waren, um zu dieser Kombination zu gelangen, bereits Angst vor Python hat.

Hintergrund zum Auftreten des Fehlers

Ich habe den folgenden Code geschrieben, um eine .py-Datei zu erstellen, um die Funktionsweise von reprlib zu überprüfen, die während des Studiums für die Python3-Ingenieurprüfung ausgegeben wurde.

python


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

Es sind zwei Zeilen. Wenn Sie es also sehr einfach ausführen, wird eine Fehlermeldung angezeigt. .. ..

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)
#(Weggelassen)
  File "<Projektordner>\reprlib.py", line 2, in <module>
    reprlib.repr(set('abcdefg'))
AttributeError: module 'reprlib' has no attribute 'repr'

Fluss bis zur Fehlerbehebung

Überprüfen Sie das Programm, das bisher ausgeführt wurde

Ich dachte, es lag nicht am Programm, weil es ein Programm gemäß dem Beispiel der Prüfung war, und ich erwartete, dass sich die Umgebung seit der letzten Verwendung von PyCharm geändert haben könnte. Daher habe ich vorerst versucht zu überprüfen, ob das bisher ausgeführte Python-Programm funktioniert.

python


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

Es ist nur eine Ergänzung,

python


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

Ich verwende keine Reprlib, erhalte aber genau den gleichen Fehler wie zuvor. ⇒ PyCharm kann das Programm nicht laden ...?

Fragen Sie den Google-Lehrer

Als ich nach "Fehler beim Importieren des Site-Moduls" suchte, stellte ich fest, dass die Python-Version anders war, der Pfad falsch war und der Modulname falsch war. Da PyCharm das Programm anscheinend nicht lesen kann, überprüfen Sie Folgendes in Anaconda Navigator. --Virtuelle Umgebung kann mit Umgebungen aktiviert werden

Installieren Sie PyCharm neu

Ich kann mich nicht erinnern, die Einstellungen selbst geändert zu haben, daher habe ich beschlossen, die Neuinstallation vorerst schnell zu versuchen. Deinstallieren Sie PyCharm → Neu installieren und führen Sie das Additionsprogramm erneut aus.

python


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

"Nana" oder "Nana"

Neuerstellung der virtuellen Umgebung

Ist die Verbindung zwischen PyCharm und der virtuellen Umgebung seltsam? Ich dachte ~~ Yakekusode ~~ Erstellen Sie die virtuelle Umgebung mit einem anderen Namen neu → Setzen Sie den Interpreter von PyCharm zurück und führen Sie das Additionsprogramm aus.

python


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

Ich bin es leid, es zu sehen.

Verdächtiger Cache

Ich habe PyCharm neu installiert, aber gibt es etwas, das bei der Deinstallation nicht gelöscht wurde? ?? Übrigens, als ich neu installiert habe, habe ich Config gelesen. Dachte ich und überprüfte das Innere des PyCharm-Projektordners. Dann fand ich einen verdächtigen Ordner namens \ _ \ _ pycache \ _ \ _! !! Das ist es! !!

Installieren Sie PyCharm neu

Löschen Sie den Ordner \ _ \ _ pycache \ _ \ _ und installieren Sie PyCharm heute zum zweiten Mal neu. Ich betete, dass es funktionieren würde, weil es diesmal eine schöne Umgebung wurde, und führte das Zusatzprogramm aus.

python


150

Process finished with exit code 0

Aussehen! !! Und führen Sie das Reprlib-Programm aus! !!

python


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

Oh Gott. .. ..

Holen Sie sich Offenbarung

Ich bin mir sicher, dass noch etwas übrig ist, und wenn ich den Projektordner erneut überprüfe, finde ich einen anderen \ _ \ _ pycache \ _ \ _ Ordner. Apropos, ich fragte mich, was drin war.

reprlib.cpython-37.pyc

Hmm?

Was ist passiert

Die Erweiterung pyc ist eine Datei, die beim Kompilieren von Python erstellt wird. Erstellungszeitpunkt:

  1. Zum ersten Mal ein Modul importieren
  2. Wenn die pyc-Datei bereits nach dem zweiten Import des Moduls vorhanden ist, der Zeitstempel jedoch älter als die py-Datei ist. Referenz: https://techacademy.jp/magazine/19131

Obwohl dies in der Fehlermeldung angezeigt wird, lautete der Name der .py-Datei für den Import reprlib diesmal reprlib.py. Wenn dies ausgeführt wird, wird eine neue Reprlib unter dem Projektordner mit demselben Namen wie das Importzielmodul kompiliert. Es scheint also, dass Python die neue Reprlib ausgeführt hat und die richtige Reprlib nicht aufrufen konnte. Ich werde. (Synonym für die Herstellung eines defekten selbst erstellten Moduls) Ich bin mir nicht sicher, warum der Addierer, der keine Reprlib importiert hat, auch nicht funktioniert hat. .. .. Ich vermute, vielleicht wird die .pyc-Suche im Projektordner vor der .py durchgeführt.

Lösung

Ich habe den Namen der .py-Datei für den Import von reprlib von reprlib.py in einen anderen Namen geändert und es war einfach auszuführen. Darüber hinaus befindet sich normaler \ _ \ _ Pycache \ _ \ _ unter ~ \ Anaconda3 \ envs \ \ Lib für Anaconda. Wenn Sie kein eigenes Modul erstellt haben, es sich jedoch im Projektordner befindet, sollten Sie dies bezweifeln.

Lektion

  1. Ändern Sie den Dateinamen .py vom vorhandenen Modulnamen.
  2. Erfahren Sie mehr über Python, bevor es funktioniert. (PyCharm musste nicht neu installiert werden, wenn ich mir ansehen wollte, was Pycache ist.)

Es war arm.

Recommended Posts

Wenn Sie der Meinung sind, dass die PyCharm-Umgebung beschädigt ist, liegt dies am Dateinamen
Wenn Sie das Update von ManjaroLinux für seltsam halten
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
Überprüfen Sie den Dateinamen, wenn Sie durch Python-Import nicht informiert werden
nb_conda_kernels wird empfohlen, wenn Sie die virtuelle Umgebung mit jupyter betreten möchten
Die Eigenschaftsbeschreibung in Python ist seltsam, wenn Sie genau hinschauen (es ist nicht seltsam, wenn Sie genauer überlegen).
Die stärkste PySide / PyQt-Entwicklungsumgebung ist auch PyCharm
Geben Sie den Projektnamen von Docker-Compose mit Docker-Integration von Pycharm an
Denken Sie an die Analyseumgebung (Teil 1: Übersicht) * Stand Januar 2017
Wenn __name__ == Heben Sie Ihre Hand, wenn Sie den Code unter '__ main__' schreiben.
[Pandas-Beschleunigung] Wenn Sie der Meinung sind, dass das Zusammenführen langsam ist, verwenden Sie die Karte
Was tun, wenn Sie eine Binärdatei katzen oder verfolgen und das Terminal verstümmelt ist?
Beachten Sie, dass beim Starten der virtuellen Umgebung von VirtualBox ein Fehler auftritt, wenn das Host-Betriebssystem Linux ist und die Kernel-Version aktualisiert wird.