Ich habe die offizielle Dokumentation zu Modulen gelesen. Darin heißt es, dass Python beim Importieren eines Moduls zunächst nach einem integrierten Modul mit diesem Namen sucht. Wenn es nicht gefunden wird, sucht es in einer Liste von Verzeichnissen, die durch die Variable sys.path angegeben wird. Die Verzeichnisse in meinem System sind unten aufgeführt:
['/home/user/Desktop/Python', '/usr/lib64/python313.zip', '/usr/lib64/python3.13', '/usr/lib64/python3.13/lib-dynload', '/usr/lib64/python3.13/site-packages', '/usr/lib/python3.13/site-packages']
Ich möchte wissen, ob das abc-Modul in Python ein integriertes Modul ist. Um dies zu überprüfen, habe ich den folgenden Codeausschnitt verwendet:
import sys
print(sys.builtin_module_names)
Ich habe den obigen Code ausgeführt und die folgende Ausgabe erhalten:
('_abc', '_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_suggestions', '_symtable', '_sysconfig', '_thread', '_tokenize', '_tracemalloc', '_typing', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time')
Aus der obigen Ausgabe geht hervor, dass abc kein integriertes Modul ist. Jetzt möchte ich das auf eine andere Art und Weise testen. Ich habe zwei Dateien mit den Namen main.py und abc.py in meinem Python-Verzeichnis erstellt (aber das Standardmodul abc ist in /usr/lib64/python3.13< vorhanden). /code> Verzeichnis). Der Code in diesen Dateien wird unten bereitgestellt:
# abc.py
var = 5
# main.py
import abc
print(abc.var)
Da abc kein integriertes Modul ist, sollte mein Interpreter beim Importieren in meinem aktuellen Verzeichnis danach suchen. Und da es in meinem aktuellen Verzeichnis vorhanden ist, habe ich erwartet, dass es 5 ausgibt. Ich habe jedoch die folgende Ausgabe erhalten:
Traceback (most recent call last):
File "/home/user/Desktop/Python/main.py", line 2, in
print(abc.var)
^^^^^^^
AttributeError: module 'abc' has no attribute 'var'
Ich habe absolut keine Ahnung, warum dies einen Fehler ausgibt.
Warum funktioniert das Importieren einer benutzerdefinierten abc.py-Datei in Python nicht wie erwartet? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post