Как я могу связать другие файлы при использовании cx_freeze?

Я использую 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 файл?

54
задан User that is not a user 17 March 2018 в 19:38
поделиться

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')]
)

Примечание:

  • include_files должны содержать "только" относительные пути к скрипту setup.py, иначе сборка будет неудачной.
  • include_files может быть списком строк, т.е. кучей файлов с их относительными путями
    . или
  • include_files может быть списком кортежей, в котором первая половина кортежа - имя файла с абсолютным путем, а вторая половина - имя файла назначения с абсолютным путем.

(Когда возникает недостаток документации, обратитесь к лягушонку Кермиту)

106
ответ дан 7 November 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: