Cx_Freeze — Как включить модули

У меня была эта проблема с включением вещей в мой скрипт cx_Freeze, я пытаюсь включить easygui и sys, поскольку я использую их в своей программе. Любая помощь будет оценена по достоинству!

Вот код:

import sys
from cx_Freeze import setup, Executable


build_exe_options = {"packages": ["os"], "excludes": ["tkinter"] }


base = None
if sys.platform == "win32":
base = "Win32GUI"

setup(  name = "ProgramGUI",
        version = "0.1",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("ProgramGUI.py", base=base)])

Так что на самом деле все, что мне нужно знать, это как включить include[ "sys", "easyGUI" ] в сценарий установки: D


person Joseph Smith    schedule 09.05.2012    source источник
comment
Какую проблему вы видите? Если вы импортируете их в обычном режиме, он должен автоматически определить их для включения.   -  person Thomas K    schedule 10.05.2012
comment
Мне удалось понять, что когда я его собрал, он сказал: «Отсутствующие модули: Easygui импортирован из main. И когда я запускаю .exe, он говорит, что нет модуля с именем easygui, скорее всего, ссылка 1-я строка кода: импортировать easygui, например   -  person Joseph Smith    schedule 15.05.2012
comment
Это означает, что он знает, что должен включать easygui, но не находит его для копирования. Где/как устанавливается easygui?   -  person Thomas K    schedule 15.05.2012
comment
easygui установлен в D:\easygui   -  person Joseph Smith    schedule 15.05.2012
comment
Если вы запускаете python там, где находится ваш скрипт установки, работает ли import easygui? Вам нужно поместить его куда-нибудь, чтобы это работало. Я думаю, что обычно это что-то вроде C:/Python27/Lib/site-packages, но я не использую Windows, так что осмотритесь.   -  person Thomas K    schedule 15.05.2012
comment
Импорт easygui работает, но у меня установлен easygui вне каталога Python32, поэтому я помещу папку в каталог python и посмотрю, что произойдет.   -  person Joseph Smith    schedule 16.05.2012
comment
Все еще не работает, теперь он говорит мне, что отсутствует множество новых модулей, ? PIL импортирован из easygui? StringIO импортирован из easygui? Tkinter, импортированный из easygui? tkFileDialog, импортированный из easygui. У меня также есть папка easygui в пакетах сайтов.   -  person Joseph Smith    schedule 18.05.2012
comment
Просто вставьте easyGUI.py в папку сборки, созданную Cx_Freeze. Это будет работать легко.   -  person Black Thunder    schedule 18.06.2018


Ответы (1)


Серьезно, я думаю, вы просто упускаете одну мелочь, чтобы указать cx_freeze импортировать easy_gui:

import sys
from cx_Freeze import setup, Executable


build_exe_options = {
    "packages": ["os", "sys"], 
    "excludes": ["tkinter"],
    "includes": ["easy_gui"] # <-- Include easy_gui
}

base = None
if sys.platform == "win32":
base = "Win32GUI"

setup(  name = "ProgramGUI",
        version = "0.1",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("ProgramGUI.py", base=base)])
person Stam Kaly    schedule 14.07.2016