2010-06-16 5 views
1

현재 py2app를 사용하여 cherrypy와 django가 포함 된 작은 파이썬 앱을 작성하고 있습니다. 내 응용 프로그램이 작은 GUI (상단 메뉴 표시 줄의 작은 아이콘과 드롭 다운 메뉴로 구성되어 있음)가 필요하기 때문에 제 프로젝트에 pyobjc를 포함 할 때까지 제대로 작동했습니다.py2app, pyObjc & macports 컴파일 오류

파이썬 스크립트를 아무런 문제없이 실행할 수 있습니다. (필자는 macports와 함께 파이썬 2.6을 사용하고 있습니다), py2app에 의해 생성 된 응용 프로그램 번들을 시작할 수 없습니다.

ImportError: 
dlopen(/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so, 2): no suitable image found. 
Did find: 
    /Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so: mach-o, but wrong architecture 

내가 빠른했다 :

sudo port -u install py26-pyobjc +universal 

을하지만 어떤 이유 MacPorts를 위해 컴파일 할 때마다 실패있는, OpenSSL을 구축하려고 대화 상자가 다음과 같은 메시지가 나타납니다. 그것은 문제가 ZLIB 관련이 보인다 -이 로그에 나타날 것입니다 :

:info:build ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture 

을 ... 그리고 여기 file /opt/local/lib/libz.dylib의 출력 :


    /opt/local/lib/libz.dylib: Mach-O universal binary with 2 architectures 
    /opt/local/lib/libz.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 
    /opt/local/lib/libz.dylib (for architecture i386): Mach-O dynamically linked shared library i386 

아무것도 나에게 잘못 보인다 없습니다.

저는 여기에 조금 붙어 있습니다. openssl이 pyObjc와 어떤 관련이 있는지 이해할 수는 없지만 컴파일을 관리하지 않으면 아무데도 갈 수없는 것처럼 보입니다./

편집 내가 MacPorts의 문제를 해결하기 위해 관리하지만 하나 py2app : MacPorts를 정말 가끔 빨아/

답변

0

을 내가 필요한 라이브러리가 라이브러리 경로에 없습니다 때문입니다 같은데요, 그래서 로더는 수 그것의 기호를 연결할 수 있도록이다 't 알아낼 당신은 두 가지 중 하나를 수행해야합니다. 응용 프로그램을 실행할 때

  1. $LD_LIBRARY_PATH 환경 변수에 /opt/local/lib 추가; 또는
  2. .app 파일을 사용하여 해당 라이브러리를 번들로 제공하십시오.
+0

감사합니다. 실제로 나는 마침내 컴파일하고 모든 것을 실행하도록했습니다. 첫 번째 '잘못된 아키텍처'문제를 해결하려면 macports pyobjc 라이브러리를 os로 사전 설치되어 있고 다른 아키텍처 (/ System/Library/Frameworks/ ".app"가 py2app로 빌드 된 직후에 모든 것을 올바른 위치에 복사하는 bash 스크립트가 있습니다.이 방법으로 잘 작동합니다. – Denis

+1

당신의'LD_LIBRARY_PATH'를 편집하지 마십시오! 만약 당신이 뭔가를해야만한다면 ... $ DYLD_FALLBACK_LIBRARY_PATH에 충실하십시오. 또한, 거의 알려지지 않은'sudo update_dyld_shared_cache'는 때때로 이런 보석입니다. –