¿Cómo puedo hacer que joblib funcione con archivos ejecutables (.exe)?
Desarrollé un programa en python para organizar los datos que vienen de archivos xlsx y csv y convertirlos a csv.
Para acelerar el programa, estoy utilizando joblib para realizar un procesamiento paralelo. El programa funciona bien cuando lo ejecuto en la consola, pero no funciona cuando genero un ejecutable usando pyinstaller. Cuando lo ejecuto, no aparece nada en la terminal.
El código principal:
import Conv
from os import getcwd
from time import time
from Df_2_csv import createFolder
from joblib import Parallel, delayed
#Obteniendo el tiempo inicial
t0=time()
path=(getcwd()).replace(“/”,”\”)
#Creando una carpeta “Csv” si no existe
newPath=createFolder(path)
#Obteniendo todos los archivos de cada tipo
all_xlsx= Conv.getAllOfType(path,”.xlsx”)
all_csv= Conv.getAllOfType(path,”.csv”)
#Obteniendo la longitud de las listas
len_all=Conv.len_all(all_xlsx,all_csv)
#Recorriendo los archivos xlsx
Result=Parallel(n_jobs=-1)(delayed(Conv.conv_xlsx)(
fileName,path,newPath,t0,index,len_all) for index,fileName in enumerate(all_xlsx))
#Recorriendo los archivos csv
Result=Parallel(n_jobs=-1)(delayed(Conv.conv_csv)(
fileName,path,newPath,t0,index,len_all) for index,fileName in enumerate(all_csv,start=len(all_xlsx)))
Generé el ejecutable usando:
pyinstaller –onefile Main.py
davy.ai
Posible solución:
Pyinstaller podría no poder encontrar el módulo joblib que se requiere para el procesamiento paralelo. Para solucionar esto, intente agregar el siguiente código a su archivo Main.py antes de importar cualquier módulo:
Esto debería ayudar a pyinstaller a encontrar el módulo joblib y permitir que el procesamiento paralelo funcione cuando ejecute el ejecutable.