Я использую python 3.5.1 и неофициальную сборку cx_freeze 5.0, доступную здесь. Я пытаюсь создать исполняемую версию проекта Python, используя tkinter
и sympy
, над которыми я работал. Я использовал cxfreeze-quickstart
для создания файла setup.py
для программы, и с точки зрения создания того, что, по крайней мере, кажется допустимым исполняемым файлом, он работает без каких-либо ошибок. Однако, когда я пытаюсь запустить исполняемый файл, ничего не происходит. Я знаю, что подобные вопросы задавались здесь, и я просмотрел и попытался понять все, что нашел, но ни одно из решений не сработало для меня. Я не понимаю, что происходит, и любая помощь будет оценена по достоинству. Код ниже:
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = [], excludes = [])
import sys
base = 'Win32GUI' if sys.platform=='win32' else None
executables = [
Executable('c:\\users\\joe\\pycharmprojects\\physics2-0\\physics2-0.py', base=base,
targetName = 'c:\\users\\joe\\pycharmprojects\\physics2-0\\physics.exe')
]
setup(name='physics solver',
version = '0.1',
description = 'alpha physics solver',
options = dict(build_exe = buildOptions),
executables = executables)
Заранее спасибо.
ОБНОВЛЕНИЕ: сейчас я пытаюсь написать сценарий setup.py
самостоятельно в соответствии с шаблоном, представленным в документации, хотя любая помощь все равно будет очень признательна.
ОБНОВЛЕНИЕ 2: я написал свой собственный setup.py
в соответствии с шаблоном, представленным в документации, и поместил его в ту же папку, что и скрипт, который я хочу заморозить, чего я не осознавал, что мне нужно было сделать. Я запустил python setup.py build
в командной строке, и он создал подкаталог build
с exe и DLL. Однако теперь, когда я пытаюсь запустить exe, появляется сообщение об ошибке, в котором говорится, что ImportError: DLL load failed. The specified module could not be found.
относится к tkinter
. Код для 2-го setup.py
ниже.
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["tkinter", "sympy", "_tkinter"], "excludes": []}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == 'win32':
base = "Win32GUI"
setup( name = "physics solver",
version = "0.1",
description = "a basic physics solver",
options = {"build_exe": build_exe_options},
executables = [Executable("Physics2-0.py", base=base)])
Ниже приведены первые 4 строки physics2-0.py
. Строка, на которую указывает сообщение об ошибке, — это строка 1.
from tkinter import *
from tkinter import ttk
from sympy import Symbol
from sympy.solvers import solve
ОБНОВЛЕНИЕ 3: Кто-нибудь, пожалуйста, помогите мне здесь. Я не могу понять это. Я даже сделал чистую переустановку python на этом этапе, просто чтобы убедиться, что я случайно что-то не испортил в какой-то момент, и он все еще выдает мне то же сообщение об ошибке.