Rumah > pembangunan bahagian belakang > Tutorial Python > Ralat Python: ImportError: tidak boleh mengimport nama 'xxx', bagaimana untuk menyelesaikannya?

Ralat Python: ImportError: tidak boleh mengimport nama 'xxx', bagaimana untuk menyelesaikannya?

PHPz
Lepaskan: 2023-08-18 23:12:39
asal
16440 orang telah melayarinya

Python报错:ImportError: cannot import name 'xxx',该如何解决?

Ralat Python: ImportError: tidak boleh mengimport nama 'xxx', bagaimana untuk menyelesaikannya?

Dalam proses pengaturcaraan dengan Python, adalah perkara biasa untuk menghadapi ralat. Salah satu ralat biasa ialah "ImportError: tidak boleh mengimport nama 'xxx'", iaitu, nama tertentu ('xxx') tidak boleh diimport.

Ralat ini biasanya berlaku dalam dua situasi berbeza:

  1. Masalah rujukan bulat:

Rujukan bulat bermaksud dua modul mengimport antara satu sama lain. Sebagai contoh, katakan terdapat dua modul A dan B. A mengimport B, dan B juga mengimport A. Keadaan ini menyebabkan ImportError. Untuk menyelesaikan masalah ini, kita boleh mengelakkan rujukan bulat dengan melaraskan kedudukan import.

Berikut adalah contoh kod yang menyebabkan rujukan pekeliling:

# module_a.py
import module_b

def foo():
    print("hello from module_a")

# module_b.py
import module_a

def bar():
    module_a.foo()
Salin selepas log masuk

Untuk menyelesaikan masalah rujukan pekeliling, kita boleh meletakkan import di dalam fungsi yang perlu digunakan. Kod yang diubah suai adalah seperti berikut:

# module_a.py

def foo():
    import module_b
    print("hello from module_a")

# module_b.py

def bar():
    import module_a
    module_a.foo()
Salin selepas log masuk
  1. Nama import tidak wujud:

Ralat nama import tidak wujud bermakna apabila mengimport modul, nama yang sepadan tidak ditakrifkan dalam modul. Ini mungkin kerana nama salah eja, modul tidak wujud, atau pembolehubah atau fungsi yang sepadan tidak ditakrifkan dalam modul.

Untuk menyelesaikan masalah ini, kami perlu memastikan modul yang diperlukan diimport dengan betul dan nama yang kami perlukan ada dalam modul.

Berikut ialah contoh kod dengan nama import tidak hadir ralat:

# module_a.py

def foo():
    print("hello from module_a")

# main.py
import module_a

module_a.bar()
Salin selepas log masuk

Dalam contoh ini, kami cuba memanggil fungsi bernama 'bar' dalam modul_a, tetapi sebenarnya module_a tidak mentakrifkan fungsi ini.

Untuk menyelesaikan masalah ini, kita perlu mengimport modul yang betul di mana fungsi 'bar' perlu digunakan, dan memastikan fungsi ini wujud dalam modul.

Berikut ialah kod yang diubah suai:

# module_a.py

def foo():
    print("hello from module_a")

def bar():
    print("hello from bar")

# main.py
import module_a

module_a.bar()
Salin selepas log masuk

Dalam kod yang diubah suai, kami mentakrifkan fungsi 'bar' dalam modul_a dan mengimport modul modul_a dalam main.py. Kita kini boleh berjaya memanggil fungsi 'bar'.

Ringkasan:

Apabila menghadapi ralat "ImportError: tidak boleh mengimport nama 'xxx'", anda perlu terlebih dahulu menentukan sama ada terdapat masalah rujukan pekeliling Jika ya, laraskan kedudukan import untuk menyelesaikan masalah rujukan pekeliling. Selain itu, pastikan modul yang diimport wujud dan modul tersebut mengandungi nama yang kami perlukan. Dengan menyemak dan melaraskan lokasi import dan menamakan pembolehubah atau fungsi yang dipanggil dengan betul, kami boleh menyelesaikan ralat ini dan berjaya mengimport modul dan nama yang diperlukan.

Atas ialah kandungan terperinci Ralat Python: ImportError: tidak boleh mengimport nama 'xxx', bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan