¿Cómo puedo convertir un .py a .exe para Python?

Estoy tratando de convertir un progtwig Python bastante simple a un ejecutable y no pude encontrar lo que estaba buscando, así que tengo algunas preguntas (estoy ejecutando Python3.6):

Los métodos para hacer esto que he encontrado hasta ahora son los siguientes

  1. descargando una versión anterior de Python y usando pyinstaller/py2exe
  2. configurando un entorno virtual en 3.6 que me permita hacer 1.
  3. descargando un convertidor de Python a C ++ y usándolo.

Esto es lo que he intentado / los problemas que he encontrado.

  • Instalé pyinstaller antes de la descarga requerida antes de (pypi-algo) por lo que no funcionó. Después de descargar el archivo de requisitos previos, pyinstaller aún no lo reconoce.
  • Si estoy configurando un virtualenv en 2.7, ¿realmente necesito tener instalado 2.7?
  • de manera similar, los únicos conversores de Python a C ++ que veo funcionan solo hasta python 3.5 – ¿Necesito descargar y usar esta versión si bash esto?

Pasos para convertir .py a .exe en Python 3.6

  1. Instale Python 3.6 .
  2. Instale cx_Freeze, (abra el símbolo del sistema y escriba pip install cx_Freeze .
  3. Instale idna, (abra el símbolo del sistema y escriba pip install idna .
  4. Escribe un progtwig .py llamado myfirstprog.py .
  5. Cree un nuevo archivo de python llamado setup.py en el directorio actual de su script.
  6. En el archivo setup.py , copie el código a continuación y guárdelo.
  7. Con la tecla Mayús presionada, haga clic con el botón derecho en el mismo directorio, de modo que pueda abrir una ventana del símbolo del sistema.
  8. En la solicitud, escriba python setup.py build
  9. Si su secuencia de comandos está libre de errores, entonces no habrá ningún problema al crear la aplicación.
  10. Compruebe la creación de la carpeta recién creada. Tiene otra carpeta en ella. Dentro de esa carpeta puedes encontrar tu aplicación. Ejecutarlo. Hazte feliz.

Ver el guión original en mi blog .

setup.py:

 from cx_Freeze import setup, Executable base = None executables = [Executable("myfirstprog.py", base=base)] packages = ["idna"] options = { 'build_exe': { 'packages':packages, }, } setup( name = "", options = options, version = "", description = '', executables = executables ) 

EDITAR:

  • asegúrese de que en lugar de myfirstprog.py debe poner su nombre de archivo de extensión .py como se creó en el paso 4 ;
  • debe incluir cada paquete import ed en su .py en la lista de packages (ej: packages = ["idna", "os","sys"] )
  • any name, any number, any description en el archivo setup.py no debe permanecer igual, debe cambiarlo en consecuencia (por ejemplo, name = "", version = "0.11", description = '' )
  • los paquetes import deben estar instalados antes de comenzar el paso 8 .

Python 3.6 todavía no es compatible con Pyinstaller. Así que para usarlo necesitarás Python 3.5 o más abajo. Aunque no estoy seguro acerca de py2exe.

De todos modos, el caso 1 debe hacerse así:

Abra una ventana cmd en su carpeta de Python (abra una ventana de comandos y use cd o mientras mantiene presionada la tecla shift, haga clic derecho en el Explorador de Windows y elija ‘Abrir ventana de comandos aquí’). Entonces solo entra

 pip install pyinstaller 

Y eso es.

La forma más sencilla de usarlo es ingresando en su símbolo del sistema

 pyinstaller file_name.py 

Para más detalles sobre cómo usarlo, eche un vistazo a esta pregunta .

Actualizar

Python 3.6 ahora es compatible con Pyinstaller

Hay un proyecto de código abierto llamado auto-py-to-exe en Github . En realidad, también solo usa Pyinstaller internamente, pero como tiene una GUI simple que controla Pyinstaller, puede ser una alternativa cómoda. También puede generar un archivo independiente en contraste con otras soluciones. También proporcionan un video que muestra cómo configurarlo.

GUI:

Auto Py a Exe

Salida:

Salida

No puedo decirte qué es lo mejor, pero una herramienta que he usado con éxito en el pasado fue cx_freeze. Recientemente se actualizaron (el 7 de enero de ’17) a la versión 5.0.1 y es compatible con Python 3.6.

Aquí está el pypi https://pypi.python.org/pypi/cx_Freeze

Los documentos muestran que hay más de una forma de hacerlo según sus necesidades.
http://cx-freeze.readthedocs.io/en/latest/overview.html

No lo he probado todavía, así que voy a señalar un post donde se discutió la manera simple de hacerlo. Algunas cosas pueden o no haber cambiado sin embargo.
¿Cómo uso cx_freeze?

py2exe es una extensión de distutils que permite crear progtwigs ejecutables de Windows independientes (32 bits y 64 bits) a partir de scripts de Python; Python 3.3 y versiones posteriores son compatibles. Puede construir ejecutables de consola, ejecutables de Windows (GUI), servicios de Windows y servidores COM DLL / EXE.

Puedes descargarlo aquí:

https://pypi.org/project/py2exe/

He estado usando Nuitka y PyInstaller con mi paquete, PySimpleGUI.

Nuitka Hubo problemas para que tkinter se comstackra con Nuikta. Uno de los colaboradores del proyecto desarrolló un script que solucionó el problema.

Si no está utilizando tkinter, puede que “simplemente funcione” para usted. Si está utilizando tkinter, dígalo y trataré de publicar el script y las instrucciones.

¡Estoy ejecutando PyInstaller 3.6 y PyInstaller está funcionando muy bien! El comando que utilizo para crear mi archivo exe es:

pyinstaller -wF myfile.py

El -wF creará un solo archivo EXE. Debido a que todos mis progtwigs tienen una GUI y no quiero mostrar una ventana de comandos, la opción -w ocultará la ventana de comandos.

Esto es lo más cercano a obtener lo que parece ser un progtwig Winforms para ejecutar que se escribió en Python.