Я использую Python 2.6 и cx_Freeze 4.1.2 в системе Windows. Я создал setup.py для создания моего исполняемого файла, и все хорошо работает.
Когда cx_Freeze работает, он перемещает все в build
каталог. У меня есть некоторые другие файлы, которые я хотел бы включенный в мой build
каталог. Как я могу сделать это? Вот моя структура:
src\
setup.py
janitor.py
README.txt
CHNAGELOG.txt
helpers\
uncompress\
unRAR.exe
unzip.exe
Вот мой отрывок:
установка
( name='Janitor', version='1.0', description='Janitor', author='John Doe', author_email='john.doe@gmail.com', url='http://www.this-page-intentionally-left-blank.org/', data_files = [ ('helpers\uncompress', ['helpers\uncompress\unzip.exe']), ('helpers\uncompress', ['helpers\uncompress\unRAR.exe']), ('', ['README.txt']) ], executables = [ Executable\ ( 'janitor.py', #initScript ) ] )
Я, может казаться, не заставляю это работать. Сделайте мне нужен a MANIFEST.in
файл?
Разобрался.
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')]
)
Примечание:
include_files
должны содержать "только" относительные пути к скрипту setup.py
, иначе сборка будет неудачной. include_files
может быть списком строк, т.е. кучей файлов с их относительными путямиinclude_files
может быть списком кортежей, в котором первая половина кортежа - имя файла с абсолютным путем, а вторая половина - имя файла назначения с абсолютным путем. (Когда возникает недостаток документации, обратитесь к лягушонку Кермиту)