2014-02-25 3 views
14

을 인터프리터로 사용하는 PyInstaller으로 단일 바이너리 또는 단일 디렉토리 패키지를 빌드 할 수 있습니까?PyPy 및 PyInstaller

특별한 트릭이 있습니까?

PyInstaller에 대한 대안이 있습니까?

그렇다면 근본적인 기술적 인 이유는 무엇입니까? pyInstaller 중에이 상자 밖으로 pypy하지 않습니다하지 않는 방법 왜/

주 : (.의 distutils |)

  • distutils.sysconfig.get_config_h_filename이 pytinstaller 트렁크
  • 에 고정 누락 SYSCONFIG (. _ |) 단일 실행에, libpython2.7.so.1에 대해 pypy을 연결 실제로 옵션,
  • 시도 누락 get_makefile_filename 아닌 공유 객체
+0

P. 나는 또한 누군가가 데모를 만들 수 있다면 바이너리 패치 도구 (alin을'LD_PRELOAD'하지만 하나의 라이브러리를 생성한다)에 접근 할 수있다 :) –

+0

대안의 [list] (http://www.freehackers.org/Packaging_a_python_program) 'PyInstaller' – VivienG

+0

감사합니다, @VivienG, 슬프게도 이들 중 누구도'pypy '를지지한다고 주장하지 않습니다. –

답변

7

나는이 밖으로 시도하고 그것은 엄마에 실패 왜냐하면 PyPy는 CPython이 사용하는 몇 가지 하위 세트로만 작업 할 수 있기 때문이다. PyInstaller는 완전히 손상된 CPython 응용 프로그램이므로 통신 할 수 없습니다.

사람들이 코드를 숨기고 속도를 향상시켜야한다면 Cython을 시도해 볼 수 있습니다. Cython과 PyInstaller를 많이 사용하며 크로스 플랫폼 특성을 좋아합니다.

둘 다 끝내면 Python 개발자 & CPython을 사용하여 앱을 패키징 할 수 있습니다.

+1

좋은 점은, pyinstaller의 대부분은 순수한 python이 사용자 앱 빌드시 실행 되었음에도 불구하고'bootloader'입니다. 빠른 검사에 따르면 CPython 내부를 대상으로하는 단순한 C 레벨 후크 컬렉션이 많이 있지만, 사용자의'py/pyc/pyo' 파일을 필요할 때 압축 해주는 인터프리터 내장 타입에 대한 런타임 작업이 다소 복잡합니다. –

+1

당신 말이 맞아요. 내가 빡빡한 일정에 도달 할 때 나는 그러한 문제의 대부분을 피할 수있는만큼 노력한다. 그래서 제가 위에서 설명한 방법을 사용합니다. – iChux