【发布时间】:2021-04-04 22:28:34
【问题描述】:
我正在尝试从名为 ProyectoNew.py 的 Python 脚本创建一个可执行文件。它适用于一个名为 "Imagenes" 的文件夹和另一个名为 "ModulosExternos" 的文件夹,以及一个 PyQT5 的 .ui 文件,如下所示:
这是发布在 GitHub 上的代码:https://github.com/TheFlosh/ProyectoSoftware.git
我尝试使用 Pyinstaller、Py2Exe 和 CXFreeze,但没有成功。使用这些模块中的每一个创建一个 .exe 文件,当我尝试在另一台 PC 上执行它时,我得到了相同的结果,如下所示:
在图片的左边你可以看到我使用 pyinstaller(或 Py2Exe)后得到的结果,在右边你可以看到我需要展示的内容。
这是我在代码中使用的模块(“ModulosExternos”是我放置代码需要的一些特定模块的文件夹):
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import pyttsx3
from pyttsx3.drivers import sapi5
import PyQt5
import sip
import os
from ModulosExternos import Boton_1,Boton_2,Boton_3,Boton_4,Boton_Final,Listas_Pictogramas, Frases_Completas
这是它的最后一部分,用于实例化 GUI:
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
GUI = ProyectoNew()
GUI.show()
sys.exit(app.exec())
我在互联网上阅读了很多建议创建 Setup.Py 文件以启动创建项目可执行文件的过程的帖子。以下是我对其中两个所做的一些示例:
使用 CX_Freeze:
import sys
import os
from cx_Freeze import setup, Executable
files = ['icono.ico','/Imagenes']
target = Executable(
script = "/ProyectoNew.py",
base = 'Win32GUI',
)
#Setup
setup(
name = "Proyect2",
version = "1.6",
description = "Software",
author = "----",
options = {'build_exe': {'include_files' : files}},
executables = [target]
)
使用 Py2Exe:
from cx_Freeze import setup, Executable
setup(name = "Proyect2",
version="1.0",
description = "Software",
executables = [Executable("ProyectoNew.py")],)
使用 Pyinstaller 我输入了:python --nowindowed --onefile ProyectoNew.py,但我不断得到与之前所示相同的结果。
我认为当我执行 Pyinstaller 时,.exe 文件不会加载我使用的模块和图像。创建文件时我缺少什么?我需要做什么才能在另一台 PC 上执行 .exe 文件?
我更喜欢使用 pyinstaller,但使用其中任何一种都会对我有所帮助。
【问题讨论】:
标签: python pyqt5 pyinstaller cx-freeze py2exe