2011-01-11 2 views
1

보통 비 기술적 인 사용자가 소비하고 일부 protobufs와의 인터페이스가 필요한 작은 파이썬 유틸리티를 작성하고 있습니다.python protobufs - 설치 단계를 피하십시오?

이상적으로, 나는이 될 수있는 로컬 컴퓨터에이를 사용하는 유일한 전제 조건을 싶습니다

파이썬 내가 그래도, descriptor_pb2.py을 가져 주위에 문제가 실행 해요

* have an SVN checkout of the repository 
* run a simple bash script to build the local proto .py definitions 
* run "python myutility" 

을 설치해야합니다. Why do I see "cannot import name descriptor_pb2" error when using Google Protocol Buffers?, 을 보았지만 proto SDK 설치 프로그램을 실행하기위한 추가 전제 조건을 추가하지 않으려합니다. 로컬 계층 구조에서 descriptor_pb2.py (다른 _pb2.py 파일의 첫 번째 가져 오기 수준에서 작동하는 )도 생성하도록 bash 스크립트를 수정했지만 descriptor_pb2.py 자체가 descriptor_pb2 가져 오기를 시도 할 수 있습니다 ' t는 그것을 발견 : 또한

* myutility.py 
* google/ 
    * protobuf/ 
    * descriptor.py 
    * descriptor_pb2.py 
* protos 
    * myProto_ob2.py 

, 내가 파이썬 n00b을 해요, 그래서 내가 뭔가를 분명 내려다있어 가능 :

$ python myutility.py 
Traceback (most recent call last): 
    File "myutility.py", line 4, in <module> 
    import protos.myProto_pb2 
    File "/myPath/protos/myProto_pb2.py", line 8, in <module> 
    from google.protobuf import descriptor_pb2 
    File "/myPath/google/protobuf/descriptor_pb2.py", line 8, in <module> 
    from google.protobuf import descriptor_pb2 
ImportError: cannot import name descriptor_pb2 

내 로컬 폴더처럼 보인다.

TIA, 오리온

+0

이상한 점은 descriptor_pb2.py가 자체적으로 가져 오는 것 같습니다. 이게 정상인가? 회신에 감사드립니다. –

답변

0

descriptor_pb2.py에서 descriptor_pb2.py의 가져 오기를 주석 처리하면 내 문제가 해결됩니다. Tim mcclarren에게 제안 해 주셔서 감사합니다!

0

는 파일 __의 초기화 __.py 구글/protobuf 디렉토리에 존재합니까?

+0

. 예, 해당 파일은 google/google/protobuf/모두에 있습니다. (darned 주석 형식은 이중 밑줄을 쓰지 못하게합니다) –