miércoles, 7 de agosto de 2024

Python (IX) Crear ejecutables en windows

1. Crear una carpeta de trabajo

2. En VS abrir dicha carpeta

3. Crear el entorno virtual usando el terminal de VS (comprobando que estamos en dicha carpeta) y activándolo

pip install virtualenv 
python -m venv myenv
myenv\Scripts\activate.bat

4. Crear el fichero "farmacies_excel2csv.py" y copiar el contenido siguiente:

import pandas
import os
import sys


def mainProva():
	FILE_PATH= os.path.dirname(os.path.abspath(sys.argv[1])) 
	excel=pandas.ExcelFile(sys.argv[1])
	for sheetName in excel.sheet_names:
		sheet=pandas.read_excel(excel, sheetName).to_csv(sep=',')
		longLine=""
		separator=""
		for lin in sheet.splitlines():
			fields=lin.split(",")
			a=fields[2].strip()
			try:
				a=int(a)
			except Exception as e: 
				a='????????'
			else:
				longLine+=separator+fields[4]+'"'
				separator=","	

		with open(FILE_PATH + os.sep+sheetName, 'w') as f:
			f.write(longLine)
			f.close()
			
	

if __name__ == "__main__":
	mainProva()	

5. Habran errores que se solucionaran instalando las dependencias que pide que pueden ser:

pip install pandas
pip install xlrd
pip install openpyxl

6. Instalar pyinstaller

pip install -U pyinstaller

7. Crear ejecutable. Puede dar problemas para encontrar la ruta de pyinstaller.
Si da problemas se busca la ruta y se añade al path

Cuando se instala en windows 11 se instala pyinstaller dentro de la carpeta del usuario. Por tanto debemos incluir en el path del usuario 


En windows tenemos que añadir a las variables de entorno de usuario estas carpetas tal como se muestra:

C:\Users\eduard\AppData\Local\Programs\Python\Python312\Scripts

C:\Users\eduard\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts







Creamos el ejecutable


# En windows
Pyinstaller --onefile -w farmacies_excel2csv.py
# En windows, si falla
python -m Pyinstaller --onefile -w farmacies_excel2csv.py

# En Linux
pyinstaller --onefile farmacies_excel2csv.py

No hay comentarios :

Publicar un comentario