Rumah >pembangunan bahagian belakang >Tutorial Python >Apa yang Berlaku Apabila Nama Skrip Python Anda Bercanggah dengan Perpustakaan yang Diimport?

Apa yang Berlaku Apabila Nama Skrip Python Anda Bercanggah dengan Perpustakaan yang Diimport?

DDD
DDDasal
2024-12-28 12:12:15525semak imbas

What Happens When Your Python Script's Name Conflicts with an Imported Library?

Mengimport Perpustakaan dengan Nama Sama Seperti Skrip

Apabila anda menamakan skrip anda dengan nama yang sama seperti perpustakaan yang diimport, seperti contohnya requests.py, pelbagai isu import boleh timbul. Isu ini boleh nyata sebagai AttributeErrors, ImportErrors atau NameErrors bergantung pada pendekatan import yang digunakan.

Ini berlaku kerana nama skrip membayangi pustaka yang dipasang dalam sys.path, memberi keutamaan kepada skrip tempatan berbanding import yang dimaksudkan.

Simptom

Plain Import

import requests

res = requests.get('http://www.google.ca')
print(res)
  • Ralat: AttributeError: modul 'requests' tidak mempunyai atribut 'get'

Import Tertentu daripada Nama

from requests import get

res = get('http://www.google.ca')
print(res)
  • Ralat: ImportRalat: tidak boleh mengimport nama 'get'

Modul Import daripada Pakej

from requests.auth import AuthBase
  • Ralat: Ralat Import: Tiada modul bernama 'requests.auth'; 'permintaan' bukan pakej

Import Bintang

from requests import *

res = get('http://www.google.ca')
print(res)
  • Ralat: Ralat Nama: nama 'dapat' tidak ditakrifkan

Penyelesaian

Untuk menyelesaikan isu ini, namakan semula skrip anda kepada nama lain yang tidak bercanggah dengan mana-mana modul yang diimport. Selain itu, padamkan fail requests.pyc yang dijana (jika ada) untuk mengelakkan gangguan daripada kod bait cache.

Penyahpepijatan Kembali

Apabila menghadapi ralat ini, periksa jejak balik dengan teliti untuk mengenal pasti perlanggaran nama modul antara nama skrip dan modul yang diimport.

Atas ialah kandungan terperinci Apa yang Berlaku Apabila Nama Skrip Python Anda Bercanggah dengan Perpustakaan yang Diimport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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