2017-11-15 5 views
3

알다시피, 나는이 코드를 cmd (win 10)에서 실행합니다. "tensorflow.contrib 가져 오기"및 "tensorflow.python 가져 오기"는 모두 OK이지만 "tensorflow.contrib"및 "tensorflow.python"명령은 다릅니다. 하나는 디렉토리를 반환하고 다른 하나는 AttributeError를 반환합니다.AttributeError : 모듈 'tensorflow'에 'python'속성이 없습니다.

단서가있는 사람이 있습니까?

+0

나는 pip install -U keras가해야한다고 생각한다. –

+0

실제로 나는 최신 keras 모듈을 가지고 있지만, 모두 똑같은 감사한다. –

답변

1

tensorflow.__init__()tensorflow.python 모듈에 대한 참조를 모두 가져온 후에 명시 적으로 삭제합니다.

그 이유는 최상위 노드 tensorflow 네임 스페이스에있는 python 패키지에 포함 된 하위 모듈에 대한 액세스를 제공하기위한 것입니다. tensorflow.core 패키지의 일부 항목도 가져오고 tensorflow 네임 스페이스에서 사용할 수 있습니다.

tensorflow.python을 직접 가져 오려면이 아닐 것이라고 생각합니다. 응용 프로그램에서 사용하려고하는 python의 클래스, 개체 및 하위 모듈은 import tensorflow으로 간단하게 사용할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 합리적이라고 생각합니다. –

+0

@mhawke 나를 귀찮게하는 것은'import tensorflow.python' 문이'AttributeError'로 이어지지 않는다는 것입니다. 그걸 설명 할 기회가 있으십니까? –

+0

@MrTsjolder : 패키지가 존재하기 때문에 'AttributeError'없이 가져 오기가 성공합니다. 왜 실패해야합니까? 것은'import tensorflow.python'이 실행될 때,'tensorflow'가 먼저 임포트되기 때문에,'tensorflow.python'보다 먼저 임포트됩니다. 'tensorflow .__ init __. py'는'tensorflow.python'에서 원하는 것을 명시 적으로 가져오고'python'에 대한 참조를 삭제하므로 가져 오기 코드의 네임 스페이스에 없습니다. 'tensorflow.python'가 이미 임포트 되었기 때문에 다시 임포트되지 않으므로 삭제 된 참조는 삭제 된 채로 남아 있습니다. – mhawke

관련 문제