Clash of Names: Mengimport Pustaka dengan Nama Fail Yang Sama
Apabila berurusan dengan import Python, adalah penting untuk mengelak daripada menamakan skrip anda mengikut pustaka sedia ada. Apabila anda berbuat demikian, ia mewujudkan konflik yang menghalang keupayaan anda untuk mengakses kefungsian luaran.
Dalam kes seperti ini, Python memberi keutamaan kepada modul setempat berbanding modul yang telah diprapasang. Ini disebabkan oleh kemasukan direktori semasa di bahagian atas sys.path, menjadikannya lebih mudah untuk Python mencari skrip tempatan dengan nama yang sama.
Sebagai contoh, jika anda mempunyai skrip bernama permintaan. py yang anda mahu gunakan untuk berinteraksi dengan pakej permintaan, ia akan gagal kerana skrip tempatan anda membayangi versi yang dipasang. Hasilnya ialah satu siri ralat, bermula daripada ImportError dan NameError kepada AttributeError yang mendakwa bahawa "modul 'requests' tidak mempunyai atribut 'get'."
Untuk menyelesaikan isu ini, namakan semula skrip tempatan anda kepada nama unik yang tidak bertembung dengan mana-mana perpustakaan sedia ada. Selain itu, semak fail requests.pyc (terletak dalam direktori pycache dalam Python 3) dan alih keluarnya, kerana penterjemah mungkin masih merujuknya dan terus menghasilkan ralat.
Nota: Perlanggaran juga boleh berlaku jika anda menamakan fail anda sama dengan modul yang diimport oleh modul lain yang anda import secara langsung. Sebagai contoh, mencipta fail bernama copy.py dan cuba mengimport panda boleh mengakibatkan ImportError, kerana panda itu sendiri mengimport salinan.
Untuk mengurangkan isu ini, elakkan menggunakan nama yang biasa digunakan dalam modul Python dan pilih untuk nama unik untuk mengelakkan konflik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Python yang Disebabkan oleh Nama Fail Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!