Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?

Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?

Patricia Arquette
Lepaskan: 2024-12-11 03:19:17
asal
964 orang telah melayarinya

How Can I Solve Circular Import Errors in Python?

Mengatasi Ralat Import Pekeliling dalam Python

Dalam Python, import pekeliling berlaku apabila berbilang modul cuba mengimport antara satu sama lain. Ini boleh membawa kepada ralat seperti "ImportError: Tidak boleh mengimport nama X" atau "AttributeError: ... (kemungkinan besar disebabkan oleh import bulat)."

Sebagai contoh, pertimbangkan perkara berikut kod:

main.py:

from entity import Ent
Salin selepas log masuk

entity.py:

from physics import Physics

class Ent:
    ...
Salin selepas log masuk

fizik.py:

from entity import Ent

class Physics:
    ...
Salin selepas log masuk

Apabila anda berlari main.py, anda akan menghadapi ralat:

Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent
Salin selepas log masuk

Ralat disebabkan oleh pergantungan bulat antara fizik.py dan entity.py. Physics.py cuba mengimport entity.py, yang sudah dimulakan.

Untuk menyelesaikan isu ini, anda harus mengalih keluar kebergantungan kepada physics.py daripada modul entity.py. Contohnya, anda boleh mengubah suai entity.py seperti berikut:

entity.py:

# Do not import physics.py

class Ent:
    ...
Salin selepas log masuk

Kini, apabila anda menjalankan main.py, anda tidak sepatutnya menghadapi ralat lagi.

Untuk pemahaman lanjut tentang import pekeliling, rujuk sumber yang disediakan dalam nota kaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan