【问题标题】:When creating .exe with pyinstaller in Anaconda, resultant .exe fails在 Anaconda 中使用 pyinstaller 创建 .exe 时,生成的 .exe 失败
【发布时间】:2020-06-28 17:55:18
【问题描述】:

Stackoverflow 中的第一个问题!

我目前正在制作一个小脚本,它获取存储在 excel 中的 youtube 锻炼视频列表并选择一些来创建锻炼例程enter image description here

我在 spyder 中制作了脚本,制作完成后,我通过 Anaconda 命令提示符使用了 pyinstaller。

一旦文件夹出现,它只会给我图像中显示的错误(链接)。

我不太确定这是 pyinstaller 错误,还是我做错了什么。

另外,它是一个相当简单的脚本,可执行文件大于 300Mb,我认为这有点多...

import pandas as pd
import random as random

excel = pd.read_excel("Ejercicios.xlsx")

def creador_rutina(original_db):
   
    print("Dificultades disponibles: \n.-Facil = 6\n.-Normal = 10\n.-Fuerte = 20")
    dif_range = ["6","10","20"]
    dificultad = input("Indica la dificultad: ")
    
    while dificultad not in dif_range: #para asegurar que indican un valor valido
        print("Selecciona una dificultad disponible: ")
        print("Dificultades disponibles: \n.-Facil = 6\n.-Normal = 10\n.-Fuerte = 20")
        dificultad = input("Indica la dificultad: ")
   
    dificultad = int(dificultad) #los input entran como str siempre
    
    ejercicios = original_db
    global rutina
    rutina = pd.DataFrame()
    valor_rutina = 0
    
    ejercicios["Total"] = ejercicios.sum(axis=1) #agrega columna de total
      
    while valor_rutina <= dificultad:
        
        comp = dificultad - valor_rutina
        ejercicios = ejercicios[ejercicios.Total <= comp]
        ejercicios.reset_index(inplace=True, drop=True)
        
        if ejercicios.empty == True:
            
            rutina = rutina[original_db.columns]
            print(rutina)
            
            break
                
        a = random.randint(0,len(ejercicios.index)-1)
        rutina = rutina.append(ejercicios.iloc[a , :], sort=False)
        ejercicios = ejercicios.drop([a])
        valor_rutina = rutina["Total"].sum()
        
       



creador_rutina(excel)

感谢您的任何想法!

【问题讨论】:

    标签: python anaconda pyinstaller spyder


    【解决方案1】:

    大伙儿,在更改 .spec 文件中开头添加的递归限制之后:

    import sys
    sys.setrecursionlimit(5000)
    

    由于 excel 文件不在“dist”文件夹中,代码无法正常工作。

    问候!

    【讨论】:

    • 干得好!快速思考:为什么不存储到像 SQLite 这样的简单数据库,而不是 Excel?这将 1) 为您提供(更多?)数据库经验,以及 2) 有助于其他程序的可移植性。由于 Excel 是二进制格式(相对于纯文本或数据库),它使交互变得繁琐。
    • 感谢您的意见!我会检查 SQLite 的想法,我刚开始编程,所以我只是用 Excel 尝试过,因为我熟悉它。
    猜你喜欢
    • 2021-01-12
    • 2021-09-14
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2020-12-17
    • 2017-10-30
    相关资源
    最近更新 更多