복붙노트

[PYTHON] cx_freeze를 사용할 때 다른 파일을 어떻게 묶을 수 있습니까?

PYTHON

cx_freeze를 사용할 때 다른 파일을 어떻게 묶을 수 있습니까?

Windows 시스템에서 Python 2.6 및 cx_Freeze 4.1.2를 사용하고 있습니다. 실행 파일을 빌드하는 setup.py를 만들었고 모든 것이 잘 작동합니다.

cx_Freeze가 실행되면 모든 것을 build 디렉토리로 옮깁니다. 내 빌드 디렉토리에 포함시키고 자하는 다른 파일들이 있습니다. 어떻게해야합니까? 여기 내 구조가 있습니다 :

src\
    setup.py
    janitor.py
    README.txt
    CHNAGELOG.txt
    helpers\
        uncompress\
            unRAR.exe
            unzip.exe

내 발췌 문장은 다음과 같습니다.

이 일을 할 수없는 것 같습니다. MANIFEST.in 파일이 필요합니까?

해결법

  1. ==============================

    1.그것을 알아 냈다.

    그것을 알아 냈다.

    from cx_Freeze import setup,Executable
    
    includefiles = ['README.txt', 'CHANGELOG.txt', 'helpers\uncompress\unRAR.exe', , 'helpers\uncompress\unzip.exe']
    includes = []
    excludes = ['Tkinter']
    packages = ['do','khh']
    
    setup(
        name = 'myapp',
        version = '0.1',
        description = 'A general enhancement utility',
        author = 'lenin',
        author_email = 'le...@null.com',
        options = {'build_exe': {'includes':includes,'excludes':excludes,'packages':packages,'include_files':includefiles}}, 
        executables = [Executable('janitor.py')]
    )
    

    노트 :

    (문서가 부족할 때 Kermit the Frog와 상담하십시오)

  2. ==============================

    2.보다 복잡한 예제가 있습니다 : cx_freeze - wxPyWiki

    보다 복잡한 예제가 있습니다 : cx_freeze - wxPyWiki

    모든 옵션에 대한 부족한 문서는 cx_Freeze (Internet Archive)

    cx_Freeze를 사용하면 Py2Exe와 달리 하나의 폴더에 11 개의 파일을 빌드 할 수 있습니다.

    대안 : 포장 | 마우스 대. 파이썬

  3. ==============================

    3.첨부 파일 (include_files = [- 첨부 파일 <-])을 찾으려면 setup.py 코드에 다음 함수를 삽입해야합니다.

    첨부 파일 (include_files = [- 첨부 파일 <-])을 찾으려면 setup.py 코드에 다음 함수를 삽입해야합니다.

    def find_data_file(filename):
        if getattr(sys, 'frozen', False):
            # The application is frozen
            datadir = os.path.dirname(sys.executable)
        else:
            # The application is not frozen
            # Change this bit to match where you store your data files:
            datadir = os.path.dirname(__file__)
    
        return os.path.join(datadir, filename)
    

    cx-freeze : 데이터 파일 사용을 참조하십시오.

  4. ==============================

    4.또한 빌드 후 파일을 복사하는 별도의 스크립트를 작성할 수 있습니다. 그것은 내가 Windows에서 응용 프로그램을 다시 작성하는 데 사용하는 것입니다 ( "cp"를 작동 시키려면 "win32 용 GNU 유틸리티"가 설치되어 있어야합니다).

    또한 빌드 후 파일을 복사하는 별도의 스크립트를 작성할 수 있습니다. 그것은 내가 Windows에서 응용 프로그램을 다시 작성하는 데 사용하는 것입니다 ( "cp"를 작동 시키려면 "win32 용 GNU 유틸리티"가 설치되어 있어야합니다).

    build.bat :

    cd .
    del build\*.* /Q
    python setup.py build
    cp -r icons build/exe.win32-2.7/
    cp -r interfaces build/exe.win32-2.7/
    cp -r licenses build/exe.win32-2.7/
    cp -r locale build/exe.win32-2.7/
    pause
    
  5. from https://stackoverflow.com/questions/2553886/how-can-i-bundle-other-files-when-using-cx-freeze by cc-by-sa and MIT license