이름 충돌: 동일한 파일 이름으로 라이브러리 가져오기
Python 가져오기를 처리할 때 기존 라이브러리 뒤에 스크립트 이름을 지정하지 않는 것이 중요합니다. 그렇게 하면 외부 기능에 액세스하는 능력을 방해하는 충돌이 발생합니다.
이와 같은 경우 Python은 사전 설치된 모듈보다 로컬 모듈에 우선순위를 둡니다. 이는 sys.path 상단에 현재 디렉터리가 포함되어 있기 때문에 Python이 동일한 이름을 가진 로컬 스크립트를 더 쉽게 찾을 수 있기 때문입니다.
예를 들어, 요청이라는 스크립트가 있는 경우. py를 요청 패키지와 상호 작용하는 데 사용하려는 경우 로컬 스크립트가 설치된 버전을 섀도잉하기 때문에 실패합니다. 그 결과 ImportError 및 NameError부터 "'requests' 모듈에 'get' 속성이 없습니다"라고 주장하는 AttributeError에 이르는 일련의 오류가 발생합니다.
이 문제를 해결하려면 로컬 스크립트의 이름을 고유한 이름으로 바꾸십시오. 기존 라이브러리와 충돌하지 않습니다. 또한, request.pyc 파일(Python 3의 pycache 디렉터리에 있음)을 확인하고 제거하세요. 인터프리터가 여전히 해당 파일을 참조하고 계속해서 오류를 생성할 수 있기 때문입니다.
참고: 직접 가져오는 다른 모듈에서 가져온 모듈과 유사하게 파일 이름을 지정하는 경우에도 충돌이 발생할 수 있습니다. 예를 들어, copy.py라는 파일을 생성하고 pandas를 가져오려고 하면 pandas 자체가 복사본을 가져오기 때문에 ImportError가 발생할 수 있습니다.
이 문제를 완화하려면 Python 모듈에서 일반적으로 사용되는 이름을 사용하지 말고 선택하세요. 충돌을 방지하기 위해 고유한 이름을 사용하세요.
위 내용은 동일한 파일 이름으로 인해 발생하는 Python 가져오기 오류를 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!