Как я могу связывать другие файлы при использовании CX freeze?
я использую Python 2.6 и cx_Freeze 4.1.2 в системе Windows. Я создал setup.py чтобы построить мой исполняемый файл и все работает нормально.
когда cx_Freeze работает, он перемещает все в . У меня есть некоторые другие файлы, которые я хотел бы включить в мой . Как я могу это сделать? Вот моя структура:
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 = [ ('helpersuncompress', ['helpersuncompressunzip.exe']), ('helpersuncompress', ['helpersuncompressunRAR.exe']), ('', ['README.txt']) ], executables = [ Executable ( 'janitor.py', #initScript ) ] )
кажется, я не могу получить это работа. Мне нужен ?
4 ответа:
разобрался.
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
может быть список кортежей, в котором первая половина кортежа-это имя файла с абсолютным путем, а вторая половина-имя файла с абсолютным путь.(когда возникает отсутствие документации, обратитесь к лягушке Кермит)
есть более сложный пример:cx_freeze-wxPyWiki
недостающая документация по всем параметрам находится по адресу:cx_Freeze (интернет-архив)
С
cx_Freeze
, Я все еще получаю вывод сборки из 11 файлов в одной папке, хотя, в отличие отPy2Exe
.варианты: Упаковка / Мышь Vs. Python
чтобы найти вложенные файлы (
include_files = [-> your attached 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)
также можно создать отдельный скрипт, который будет копировать файлы после сборки. Это то, что я использую, чтобы перестроить приложение на windows (вы должны иметь "GNU utilities for win32" установлен, чтобы сделать "cp" работает).
построить.летучая мышь:
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