Ошибка cx_freeze после преобразования в исполняемый файл tkinter - PullRequest
1 голос
/ 30 марта 2020

Это установочный файл, который я использую

import cx_Freeze
import sys
import os
base = None

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

os.environ['TCL_LIBRARY'] = r"C:\Users\osama shakeel\AppData\Local\Programs\Python\Python37-32\tcl\tcl8.6"
os.environ['TK_LIBRARY'] = r"C:\Users\osama shakeel\AppData\Local\Programs\Python\Python37-32\tcl\tk8.6"
os.environ['TK_LIBRARY'] = r"C:\Users\osama shakeel\AppData\Local\Programs\Python\Python37-32\tcl\treectrl2.4.1"

executables = [cx_Freeze.Executable("alkhidmat.py", base=base, icon=r"C:\Users\osama shakeel\PycharmProjects\alkhidmat-project\icon.ico")]


cx_Freeze.setup(
    name = "Alkhidmat Management System",
    options = {"build_exe": {"packages":["tkinter"], "include_files":[r"C:\Users\osama shakeel\PycharmProjects\alkhidmat-project\icon.ico",'tcl86t.dll','tk86t.dll', 'icons2']}},
    version = "0.01",
    description = "Tkinter Application",
    executables = executables
    )

И это библиотеки, которые я использую.

import tkinter as tk
from tkinter import ttk
from tkcalendar import Calendar, DateEntry
from csv import DictWriter, DictReader
import os
import tkinter
from TkTreectrl import *
import pandas as pd

И это ошибка, которую я получаю после установки приложения. Загруженный мной внешний пакет - TkTreectrl, и другая функция программы автоматически создает файл csv в текущем каталоге, где мой (alkhidmat.py) ) файл присутствует

cx_Freeze: Python error in main script
Traceback (most recent call last):
File "C:\Users\osama
shakeel AppData\Local\Programs\Python Python37-32\lib \site
-packages\cx_Freeze\initscripts _startup_.py", line 40, in run
module.runo
File "C:\Users\osama
shakeel AppData\Local\Programs\Python Python37-32\lib\site
-packages\cx_Freeze\initscripts\Console.py", line 37, in run
exec(code, [name__ main__'})
File "alkhidmat.py", line 1, in <module>
ModuleNotFoundError: No module named 'tkinter
ок
1

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Я могу дать вам отличный совет, НЕ ИСПОЛЬЗУЙТЕ CX-FREEZE, используйте auto-py-to-exe . Используя этот модуль, вы сможете добавить личный значок в ваше приложение, а также добавить дополнительные файлы очень простым способом. А здесь есть ссылка для его установки. cmd здесь

0 голосов
/ 02 мая 2020

попробуйте заглянуть в папку ./lib (в папке bulid) и переименовать папку "Tkinter" в "tkinter"

...