Unterschied in sys.path abhängig davon, wie Python gestartet wird (v3.8.2)

Überblick

Es gibt verschiedene Möglichkeiten, Python-Programme zu starten, die sich im Wert von "sys.path", dem Modul-Suchpfad, unterscheiden.

Verweise

Version v3.8.2 anzeigen

Einzelheiten

Einfach ausgedrückt

Die Zusammenfassung ist wie folgt. Der Autor wusste nicht, dass er Verzeichnisse (Pakete) und ZIP-Dateien starten kann.

pythonArgumente nach Was wird gemacht? Sein Modulname(__name__) sys.pathErstes Element von
<.py Datei> Diese Datei __main__ <Das Verzeichnis, in dem sich die Datei befindet>
<Verzeichnis> <Verzeichnis>/__main__.py __main__ <Verzeichnis>
<.zip-Datei> .zip-DateiInnerhalb__main__.py __main__ <.zip-Datei>
-m <Modul> <Modul>.py __main__ Aktuelles Verzeichnis(Leerer String)
-m <Paket> <Paket>/__main__.py __main__ Aktuelles Verzeichnis
-c <Befehl> __main__ Aktuelles Verzeichnis
- Skript als Standardeingabe übergeben __main__ Aktuelles Verzeichnis

Vorsichtsmaßnahmen bei der Verwendung von -I

Wenn Sie in den Startoptionen -I angeben, haben Sie -E -s angegeben und der Interpreter startet im ** isolierten Modus **. Zu diesem Zeitpunkt wird das obige ** erste Element nicht zu sys.path hinzugefügt (aufgrund des Einflusses von -s). ** ** ** Grundsätzlich können Sie also (absolut) nur Module importieren, die mit pip install installiert wurden. Beachten Sie, dass auch das Modul neben dem Ausführungsskript nicht importiert werden kann [^ 1].

[^ 1]: Das Modul neben dem Ausführungsskript kann nicht relativ dazu importiert werden. Dies liegt daran, dass ein relativer Import aus dem Modul "main" nicht möglich ist.

Recommended Posts

Unterschied in sys.path abhängig davon, wie Python gestartet wird (v3.8.2)
Ändern Sie in Python das Verhalten der Methode je nach Aufruf
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Verwendung ist und == in Python
So testen Sie, ob die Ausnahme in Python unittest ausgelöst wird
Test.py wird auf dem Webserver in Python3 nicht angezeigt.
Verwendung von __dict__ in Python
Wie man in Python entwickelt
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
So verwenden Sie Python in Pyenv unter MacOS mit PyCall
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Unterschied in der Ausführungsgeschwindigkeit abhängig vom Schreiben der Cython-Funktion
Ich habe viel recherchiert, wie Python ausgeführt wird
Erste Schritte mit Python Responder v2
Unterschied zwischen == und ist in Python
Verwenden Sie Stoff wie in Python (Stoff3)
So sammeln Sie Bilder in Python
Python ist UnicodeEncodeError im CodeBox-Docker
Verwendung von SQLite in Python
Erste Schritte mit Python
Wie man MySQL mit Python benutzt
In Python gibt es keinen Schalter
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Python in ist auch ein Operator
Erste Schritte mit Python 3.8 unter Windows
Umgang mit Japanisch mit Python
Beginnen Sie mit Python mit Blender
Unterschied in der Authentizität zwischen Python und JavaScript
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Unterschiede zwischen Ruby und Python im Umfang
"<" In Python> Pack ("<L", ...) ist wenig todian
Wie man pydoc auf Python Interpreter liest
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
Suchen Sie nach Dateien wie Linux Find in Python
[Python] [Pandas] Wie wird pd.DataFrame (). T implementiert?
[Kivy] So installieren Sie Kivy unter Windows [Python]
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
Inject wird für DDD in Python empfohlen
2017-03-17 CentOS 6.8> Python 3.6.0 wurde in virutalenv eingeführt / gestartet / gestoppt
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Unterschiede zwischen Python- und Java-Syntax
So arbeiten Sie mit BigQuery in Python
Führen Sie AzureKinect an Heiligabend in Python aus.
Wie bekomme ich Stacktrace in Python?
So löschen Sie Python 2.x auf einem Mac.
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
Was ist "Mahjong" in der Python-Bibliothek? ??
Memorandum über die Verwendung von Gremlin Python
So überprüfen Sie die Version von opencv mit Python
Hash in Perl ist ein Wörterbuch in Python
Beginnen wir mit TopCoder in Python (Version 2020)
So wechseln Sie die Python-Version in Cloud9
So passen Sie den Bildkontrast in Python an
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus