将多个 .py 文件编译为 windows 个可执行文件 (.exe)
Compile multiple .py files to windows executable (.exe)
我有一个相对较小的 python 程序,我想将其转换为 windows 可执行文件。它最初是用 Pycharm 和 运行 写的。
它由我编写的两个.py文件和一些库(全部从pip安装)组成。
我正在尝试使用 cx_Freeze 完成我的工作,但收效甚微。
我的 setup.py 是这样的:
from cx_Freeze import setup, Executable
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
setup(name="MFS-printer",
version='1.0.0',
description='A parser for the log file from the terminal exit of the mfs system',
options={"build_exe": {"packages": ["file_read_backwards", "Pil", "watchdog", "win32print", "win32ui", "tkinter", "log_parser"],
"include_files": ["Roboto-Bold.ttf", "mfs_robot(2).png", os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'), os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),]
}
},
executables = [Executable("main.py"), Executable("log_parser.py")], requires=['watchdog']
)
在 运行ning python setup.py 构建以创建 windows 应用程序后,不存在任何错误,但是当我尝试 运行 应用程序时,它崩溃了从这个错误开始:
我从这两个文件(main.py 和 log_parser.py)导入的内容如下:
main.py:
import os,time
import datetime
import log_parser
import win32print
from tkinter import filedialog
from tkinter import *
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from pathlib import Path
log_parser.py
import os
import win32print
import win32ui
from file_read_backwards import FileReadBackwards
from PIL import Image, ImageDraw, ImageFont, ImageWin
setup.py 可能有问题,但我找不到问题所在。
任何帮助将不胜感激。
可能有更好的答案,但我只想使用 python 线程。您可以将两个脚本合二为一并同时 运行 它们。
这是一个线程示例:
from threading import Thread
from time import sleep
def script1():
while (True):
print("1")
sleep(2)
def script2():
while (True):
sleep(.1)
print("2")
sleep(1.9)
Thread(target = script1).start()
Thread(target = script2).start()
编辑,试试这个:
将所有必要的模块导入第一个(主)脚本。添加 from [filenameofsecondscript] import *
后,脚本将在导入时变为 运行,因此请确保只使用定义,而不是在需要时调用定义。比创建一个新的 exe,第二个脚本作为 .py(不是 exe!)包含在内。
目前 cx_Freeze 似乎并不真正支持 Windows 64 位的 Python3.7(直到这个日期)。这是指它的 Github 问题。我希望当其他人搜索它时,它会被修复!
我有一个相对较小的 python 程序,我想将其转换为 windows 可执行文件。它最初是用 Pycharm 和 运行 写的。
它由我编写的两个.py文件和一些库(全部从pip安装)组成。
我正在尝试使用 cx_Freeze 完成我的工作,但收效甚微。 我的 setup.py 是这样的:
from cx_Freeze import setup, Executable
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
setup(name="MFS-printer",
version='1.0.0',
description='A parser for the log file from the terminal exit of the mfs system',
options={"build_exe": {"packages": ["file_read_backwards", "Pil", "watchdog", "win32print", "win32ui", "tkinter", "log_parser"],
"include_files": ["Roboto-Bold.ttf", "mfs_robot(2).png", os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'), os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),]
}
},
executables = [Executable("main.py"), Executable("log_parser.py")], requires=['watchdog']
)
在 运行ning python setup.py 构建以创建 windows 应用程序后,不存在任何错误,但是当我尝试 运行 应用程序时,它崩溃了从这个错误开始:
我从这两个文件(main.py 和 log_parser.py)导入的内容如下:
main.py:
import os,time
import datetime
import log_parser
import win32print
from tkinter import filedialog
from tkinter import *
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from pathlib import Path
log_parser.py
import os
import win32print
import win32ui
from file_read_backwards import FileReadBackwards
from PIL import Image, ImageDraw, ImageFont, ImageWin
setup.py 可能有问题,但我找不到问题所在。 任何帮助将不胜感激。
可能有更好的答案,但我只想使用 python 线程。您可以将两个脚本合二为一并同时 运行 它们。
这是一个线程示例:
from threading import Thread
from time import sleep
def script1():
while (True):
print("1")
sleep(2)
def script2():
while (True):
sleep(.1)
print("2")
sleep(1.9)
Thread(target = script1).start()
Thread(target = script2).start()
编辑,试试这个:
将所有必要的模块导入第一个(主)脚本。添加 from [filenameofsecondscript] import *
后,脚本将在导入时变为 运行,因此请确保只使用定义,而不是在需要时调用定义。比创建一个新的 exe,第二个脚本作为 .py(不是 exe!)包含在内。
目前 cx_Freeze 似乎并不真正支持 Windows 64 位的 Python3.7(直到这个日期)。这是指它的 Github 问题。我希望当其他人搜索它时,它会被修复!