2012-11-05 3 views
0

파이썬에서 패키지와 같은 이름의 모듈을 사용할 수 있습니까?같은 이름의 모듈과 패키지

예 :

import json 
import myapp.json.jsoncustommodule 

이 JSON 내장 된 라이브러리 파이썬에서 사실과는 아무 상관이 있는지 모르겠다.

대부분의 언어에서 허용됩니다. 그러나 파이썬은 서로 다른 부모 패키지에 있어도 두 가지를 혼동하는 것처럼 보입니다.

+1

어떤 문제가 당신이를 정확히? 당신이주는 예제는 잘 작동합니다. 가져온 개체를 사용할 수있는 이름 인 * local * 이름에 문제가 있다고 생각됩니다. –

답변

3

질문에 대답하기 위해 Python에서 이와 같은 작업을 수행 할 때 아무런 문제가 없습니다.

이 같은으로 인한 네임 스페이스 충돌이 그러나 경우 : -

import json 

from myspecialpackage import json 

당신은 다음과 같이 as 키워드를 사용하여이를 해결해야합니다 : -

from myspecialpackage import json as special_json 
+0

네 말이 맞아. 간단한 테스트 예제를 만들었고 정상적으로 작동합니다. 그것은 다른 것임에 틀림 없다. 내 코드에서 json .__ file__을 인쇄하면 myapp.json.__init__.py가 반환됩니다. 왜 그런가? –

+0

또한'sys.path' ('PYTHONPATH')를 수정해야합니다. 'myspecialpackage'가'sys.path'에 있지만 파이썬의 빌트인'json' 모듈이있는'site-packages' 뒤에 있는지 확인하십시오. –

+1

json dir은 스크립트 디렉토리의 하위 디렉토리 였고 ... 현재 스크립트 경로는 python 경로의 site-packages 앞에 있습니다. 문제 해결됨. –

관련 문제