2012-04-05 2 views
1

파이썬으로 프로그램을 작성했습니다. 이 파일은 7 개의 파일과 3 개의 파일에 작성되어 사용자 정의 패키지를 가져옵니다. 문제는 내 프로그램을 exe 파일로 빌드 할 수 없다는 것입니다. 나는 pyinstaller 1.5.1과 py2exe를 시도했다. 나는 찾을 수있는 모든 튜토리얼을 따라 갔지만 성공하지 못했습니다. 만든 exe ​​파일을 실행하려고 할 때마다 사용자 지정 패키지를 찾을 수 없다는 오류 메시지가 나타납니다. 나는 exe에 내장 된 완전한 패키지를 얻을 수 없었다고 생각한다. 도와주세요.python 패키지를 exe에 빌드하는 방법

from distutils.core import setup 
import py2exe, sys, os 
sys.argv.append('py2exe') 

mfcfiles = [os.path.join(mfcdir, i) for i in ["mfc90.dll", "mfc90u.dll", "mfcm90.dll", "mfcm90u.dll", "Microsoft.VC90.MFC.manifest"]] 

data_files = [("Microsoft.VC90.MFC", mfcfiles),] 

setup(
    data_files = data_files, 
    options = {'py2exe': {'optimize': 2}}, 
    windows = [{'script': "LoadFilesGUI.py"}], 
    zipfile = "shared.lib", 
) 

다른 :

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': {'optimize': 2}}, 
    windows = [{'script': "LoadFilesGUI.py"}], 
    zipfile = None, 
    console=['LoadFilesGUI.py'], 
) 
+0

할 수 있습니다. 다시 시도하십시오. 파일 구조 및 포장기 구성에 대한 자세한 내용을 알려주십시오. – j13r

+0

예, 작동 할 수 있어야합니다. setup.py와 프로젝트 구조가 무엇인지를 보여줄 필요가 있다는 데 동의합니다 – jdi

+0

어떤 유형의 파일입니까? 사용자 정의 패키지의 유형은 무엇입니까? pyinstaller 및 py2exe의 오류는 무엇입니까? 다른 질문을 할 수있는 더 많은 공간을 남겨 두는 질문! –

답변

2

"사용자 정의 패키지"는 응용 프로그램을 구성하는 사용자 정의 파이썬 모듈을 의미합니다. 나는, (가) 설정의 옵션()을 수동으로 포함되어야하는 파이썬 모듈을 지정하기 위해 전화를 "포함"사용하려고 제안 할 수있는 경우에 그들은 자동으로 검색되지 않습니다 예를 들어

setup( 
    windows = [{'script': "LoadFilesGUI.py"}], 
    data_files = data_files, 
    zipfile = None, 
    options = { 
     'py2exe': { 
      'optimize': 2, 
      'bundle_files': 1, 
      'includes' : [], 
     } 
    }, 
) 

, 내 프로젝트에있는 PyQt4를 사용하면 다음과 같은 내용이 포함됩니다.

options={ 
    "py2exe": { 
     "includes" : ['sip','PyQt4.QtCore','PyQt4.QtGui', 
         'PyQt4.QtNetwork','PyQt4.QtWebKit'] 
    } 
} 

나머지 setup.py 스크립트는 꽤 표준적인 것처럼 보입니다. 포함 된 모듈이 프로젝트와 관련된 PYTHONPATH의 일부이거나 경로에 명시 적으로 추가되었는지 확인하십시오.

당신이 당신의 의견에 명시된대로, MyPackage 프로젝트 내에서 패키지이며, 경우에, 당신이 원하는 것 : 'includes' : ['MyPackage']

를이 여전히 오류를 제공하면, 문제는 프로젝트의 구조가 될 수 패키지 또는 다시 PYTHONPATH로

0

나 cx_Freeze는 대답이다.

가장 안정적인 옵션입니다. 일부 종속성이 누락되는 경우가 있지만 누락 된 항목을 발견하면 수동으로 쉽게 추가 할 수 있습니다.

+2

이 경우에는 실제로 대답이 아닙니다. 다른 패키지를 사용하는 것이 좋습니다.나는 PyQt4 기반의 파이썬 프로젝트를 위해 윈도우에서 py2exe를 성공적으로 사용했다. 확실히 OP가 잘못하고있는 것이 있습니다. – jdi

+0

cx_Freeze는 바이너리 패키지에서 일반적으로 OOB로 작동하며 크로스 플랫폼이며 파이썬 2.3에서 3.2까지 사용 가능합니다. py2exe는 파이썬 2.6에서만 작동합니다. 또한 distutils 스크립트를 사용자 정의하면 많은 유연성을 얻을 수 있습니다 (http://cx-freeze.sourceforge.net/cx_Freeze.html 참조). py2exe를 계속 사용해도 무료이지만 더 나은 도구가없는 이유는 무엇입니까? – Gabriel

+0

추신 : 간단한 자습서입니다. http://www.blog.pythonlibrary.org/2010/08/12/a-cx_freeze-tutorial-build-a-binary-series/ – Gabriel

관련 문제