Как создать .exe файл с помощью cx_Freeze вместе со сторонними python пакетами? - PullRequest
1 голос
/ 17 февраля 2020

Я новичок в python программировании и хочу создать файл .exe вместе со сторонними python пакетами. Мои требования состоят в том, что если я передам исходный код проекта любому разработчику, он / она просто запустит python setup.py build, чтобы был создан файл .exe. Я также упомянул install_requires в файле setup.py, упомянув сторонние пакеты, но я получаю ошибки. Я приведу ниже код. Это требование аналогично java, приложению на основе maven, в котором пользователь запускает pom. xml для создания исполняемого файла.

import sys
from cx_Freeze import setup, Executable

includefiles = []
includes = []
excludes = ['Tkinter']
packages = ['configparser == 4.0.2', 'colorama == 0.4.3', 'xlsxwriter == 1.2.7']
build_exe_options = {'includes':includes,'packages':packages, 'excludes':excludes, 'include_files':includefiles}

base = None

setup(name = 'Testing',
        version = '0.1',
        author = 'DD Mishra',
        description = 'A simple application',
        install_requires = ['configparser == 4.0.2', 'colorama == 0.4.3', 'xlsxwriter == 1.2.7'],
        options = {'build_exe': build_exe_options},
        executables = [Executable('main.py', base=base)]
)

Я использую команду python setup.py build. Прежде всего я хочу установить все необходимые пакеты, такие как configparser , colorama , xlsxwriter и после этого должен быть создан exe-файл. Все должно происходить автоматически, без ручной установки пакетов с помощью команды pip.

В соответствии с моей настройкой выше при выполнении команды python setup.py build, я получаю следующую ошибку.

выполняется сборка выполняется build_exe Traceback (последний вызов был последним):
Файл «setup.py», строка 13, в настройке (name = 'Testing', файл "C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ dist.py ", строка 340, в настройке distutils.core.setup (** attrs) Файл" C: \ devsoftwares \ Python38 \ lib \ distutils \ core.py ", строка 148, в настройке dist. Файл run_commands () "C: \ devsoftwares \ Python38 \ lib \ distutils \ dist.py", строка 966, в файле run_commands self.run_command (cmd) Файл "C: \ devsoftwares \ Python38 \ lib \ distutils \ dist .py ", строка 985, в файле run_command cmd_obj.run ()" C: \ devsoftwares \ Python38 \ lib \ distutils \ command \ build.py ", строка 135, в файле запуска self.run_command (cmd_name)" C: \ devsoftwares \ Python38 \ lib \ distutils \ cmd.py ", строка 313, в run_command self.distribution.run_command (co mmand) Файл "C: \ devsoftwares \ Python38 \ lib \ distutils \ dist.py", строка 985, в файле run_command cmd_obj.run () "C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ dist.py ", строка 211, в run freezer.Freeze () Файл" C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ freezer.py ", строка 610, в Freeze self.finder = self ._GetModuleFinder () Файл "C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ freezer.py", строка 354, в файле _GetModuleFinder finder.IncludeModule (name) "C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ finder.py ", строка 631, в модуле IncludeModule = self._ImportModule (имя, deferredImports, файл" C: \ devsoftwares \ Python38 \ lib \ site-packages \ cx_Freeze \ finder.py ", строка 348, в _ImportModule поднять ImportError (" Модуль без имени% r "% name) ImportError: Нет модуля с именем 'configparser == 4.

0.2'

...