2014-07-08 3 views
4

파이썬 모듈은 외부 바이너리 (비 파이썬)에 기본적으로 큰 래퍼 (훨씬 더 많은 것들을 더함)입니다. 내 코드와 함께 바이너리 (osx는 1 바이너리, linux는 1 바이너리)를 포함하고 싶습니다.파이썬 패키지에 외부 바이너리 포함하기

package_data={'packagename': ['lib/app-osx/*', 'lib/app-linux/*', 'lib/*.awk']}, 

와 파일에 있습니다 : :

/packagename 
/lib 
    script.awk 
    /app-osx/ 
    app 
    /app-linux 
    app 

나는 그들이 모든 경우에 그들은이 설치된 위치를 찾을 수 없습니다 나는 현재 내 setup.py에 다음 있나요? 이 대회가 있습니까? 이

을 :(그리고, 파이썬 스크립트 내에서 자신의 위치를 ​​찾는 가장 좋은 방법은 무엇을 위해 내가 분명히 종속성을 사용할 수없는 이유는 무엇입니까?

감사 조나단의 프롬으로

+1

는 [자원 관리자 API]를 사용하여 (http://peak.telecommunity.com/DevCenter/PkgResources# :이 솔루션은하여 setup.py에 다음을 추가 단순히 루카스가 나에게 제공하는 솔루션이었습니다 발견 기본 리소스 액세스)를 통해 에그의 리소스에 액세스 할 수 있습니다. 바이너리에 대한 파일 시스템 경로가 필요하다면 ['resource_filename'] (http://peak.telecommunity.com/DevCenter/PkgResources#resource-extraction)을 사용하고 싶을 것입니다. 'import pkg_resources;와 같은 것을 본다. path = pkg_resources.resource_filename ('packagename', 'foo.bin')'(테스트되지 않음). 감사합니다. –

+0

. 내 setup.py가 올바르게 작성 되었습니까? – GarethPrice

+0

내가 말할 수있는 것부터 예, 패키지 리소스 선언이 정확합니다. –

답변

1

을, 나는 채팅을 통해 가서 .

zip_safe=False 
+0

감사! 전체'setup.py'를 제공하고 왜'zip_safe = False'가 문제를 해결했는지 설명하면, 나는이 질문과 대답에 기꺼이 동의 할 것입니다. –