Pablo Flores
Pablo Flores

Reputation: 717

Failing to create a .exe file with Python and PyQt5

I`m trying to make an executable from my python script called ProyectoNew.py. It works with a folder called "Imagenes" and another called "ModulosExternos", and a PyQT5's .ui file like this:

enter image description here

Here`s the Code posted in GitHub: https://github.com/TheFlosh/ProyectoSoftware.git

I`ve tried to use Pyinstaller, Py2Exe and CXFreeze but it didn't worked. Using each one of these modules to create a .exe file I've got the same result when I tried to execute it in another PC, as shown here:

LEFT: What I get after using  pyinstaller - Right: What I need to show

On the LEFT of the picture you can see what I get after using pyinstaller (or Py2Exe), on the right you can see what I need to show.

Here are the modules that I use in my code ("ModulosExternos" is the folder where I put some particular modules that my code needs):

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

And here is the last part of it, to instantiate the GUI:

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    GUI = ProyectoNew()
    GUI.show()
    sys.exit(app.exec()) 

I`ve read a lot of posts on the internet that recommended creating Setup.Py file to initiate the process of creating an executable file of my project. These are some examples of what I did with two of them:

With 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]
    )

With Py2Exe:

from cx_Freeze import setup, Executable

setup(name = "Proyect2",
    version="1.0",
    description = "Software",
    executables = [Executable("ProyectoNew.py")],)

With Pyinstaller I typed: python --nowindowed --onefile ProyectoNew.py but I constantly got the same result as shown before.

I think that when I execute Pyinstaller, the .exe file doesn`t load the modules and the images that I use. What am I missing while creating the file? What do I need to do to execute the .exe file in another PC?.

I would prefer to use pyinstaller,but using any one of these will help me.

Upvotes: 0

Views: 777

Answers (1)

DabvAstur
DabvAstur

Reputation: 49

What's is wrong with that? You get some kind of error? Please edit your question with that.

With pyinstaller and this command, you should be able easily build an executable file:

pyinstaller [FILE].py -w -F

This command generate a /dist folder with the neccesary files and .exe file to run

*-w param is for do not provide a console window for standard i/o

*-F param is for one-file bundled executable You can check more params here

PD: Before, you need obviously install pyinstaller:

pip install pyinstaller

Upvotes: 3

Related Questions