2012-10-31 6 views
0

내 Django 프로젝트에서 Python 용 dnspython 또는 easyzone 모듈을 가져오고 사용하는 데 문제가 있습니다. 나는 또한 같은 문제로 DJango 외부에서이 스크립트를 시험해 보았습니다. 그래서 문제가 프레임 워크와 관련이 없다고 확신합니다.Python 'Module'객체에 속성 오류가 없음 - 가져온 모듈

내부에있는 DNS 레코드의 영역 파일을 열고 구문 분석하는 간단한 스크립트가 있습니다. 나는 easyzone 또는 DNS 모듈을 가져 아무 문제가 없다,하지만 난이 오류 얻을 내부의 방법 중 하나에 액세스하려고하면

Traceback (most recent call last): 
    File "fabfile.py", line 6, in <module> 
    z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 
AttributeError: 'module' object has no attribute 'zone_from_file' 

내가 설치 한 dnspython을 쉽게 문제없이 easy_install을 통해 설치합니다. 스크립트의 맨 위에있는 모듈을 오류없이 가져올 수 있습니다. IDE 도우미에서 라이브러리 경로를 보여줍니다. 하지만 easyzone 또는 dns 내의 모든 메서드에 액세스하려고하면 오류가 발생하며 IDE에서 코드 완성을하면 경로 문제이거나 어떻게 가져 오는지 알 수있는 방법이 나열되지 않습니다.

import os 
import csv 
import easyzone 
import dns 

z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 

나는이 방법이 존재 명확하게 볼 수있는 코드 모듈 내부에 보면, 무슨 일이 내가 그들에 액세스 할 수 없습니다를 잘못하고 있어요 : 실패하는 경우 여기

내 코드?

답변

0

가져 오기를 수정해야합니다. 개발자 sourcecode hosting homepage에서 :

from easyzone import easyzone 
z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 
+0

젠장, 난의 주요 차이점은 무엇인가 ... 내가 PHP에서 파이썬 꽤 새로운오고 나는 바보 알고 있었다 단지 모듈을 가져 오기위한 2 가지 방법에? "easyzone 가져 오기"가 자동으로 모든 것을로드하지 않는 이유는 무엇입니까? – xXPhenom22Xx

+1

@ xXPhenom22Xx :'import easyzone'는 최상위 모듈을 가져 와서 같은 이름을 가진 로컬 네임 스페이스에 추가합니다. 'from easyzone import easyzone'은 최상위 레벨의 easyzone 모듈에 포함 된 easyzone *이라는 이름의 객체를 가져 와서 같은 이름으로 다시 로컬 네임 스페이스에 추가합니다. 이 특별한 예제는이 패키지의 구조 때문에 다소 혼란 스럽습니다. 대안은'easyzone.easyzone.zone_from_file (..)'을 사용하는 것입니다. –

+0

멍청한 놈 돕기에 너무 감사드립니다. – xXPhenom22Xx