Добрый день.
Имеется небольшая программка, написанная на Python 3.4.4, которая работает с БД sqlite3. В ней используются следующие модули:
from PyQt4 import QtGui, QtCore, uic, QtSql
from itertools import zip_longest
import sys, sqlite3, random, pickle, hashlib, time
Размер исходников (включая пустую БД, пару иконок и ui) составляет почти 50 кб. Если откомпилировать это все в cx_Freeze, используя скрипт:
import sys
from cx_Freeze import setup, Executable
build_exe_options = {"include_files" : ["main.ui", "datebase.db"]}
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "test",
version = "0.1",
description = "test",
options = {"build_exe": build_exe_options},
executables = [Executable("main.py", base = base, icon = "icon.ico")])
то получаем коллекцию файлов с exe размером 99 мб. Среди файлов есть также библиотеки, которые никак не используются и их удаление не нарушает работу программы. Я попробовал прописать модули в setup.py: cx_freeze не может найти QtGui, QtCore, uic, QtSql, если их прописать в packages или includes, получается прописать только "includes" : ["sys", "sqlite3", "random", "pickle", "hashlib", "time"], но в таком случае размер программы выходит на 1 мб меньше. Можно ли всё-таки как-то скомпилировать exe с максимально нужными файлами и библиотеками?