基于anaconda(包括fbproph)为python创建exe

2024-09-19 07:14:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我真的希望你们中的一些人能给我一个好的建议。我坐在这里-fbprophet已经安装-并尝试创建一个exe文件为Windows10使用pyinstaller。你知道吗

一开始,我尝试了一个小代码,看看我是否知道如何处理pyinstaller语法(没有fbprophet),如下面所示

import PySimpleGUI as sg
import pandas as pd

import numpy as np
import matplotlib.pyplot as plt
excel_path=sg.PopupGetFile("Select Excel file to forecast",title="Excel file to forecast",icon="Mann+Hummel.ico")
data=pd.read_excel(str(excel_path))
data["ds"]=pd.to_datetime(data["ds"])
liste=[names for names in data.columns if names != "ds"]
frequency=["D","W","MS","Q","A"]
cut_off=int(0.7*len(data.index))
minimum_periode=(int(0.3*len(data.index))+1)
#sg.ChangeLookAndFeel("GreenTan")
sg.SetOptions(text_justification="right")
layout = [[sg.Text('Fbprophet forecast Command Line Parameters', font=('Helvetica', 16))],
       [sg.Text('_'  * 100, size=(65, 1))],
       [sg.Text('External parameters', font=('Helvetica', 15), justification='left')],
       [sg.Text("Put excel sheet to analyze"),sg.Input(str(excel_path),size=(50,1))], #values[0]
       [sg.Text('_'  * 100, size=(65, 1))],
       [sg.Text('External parameters', font=('Helvetica', 15), justification='left')],
       [sg.Text("Select product",size=(20,1),justification="left"),sg.Drop(values=liste,size=(10,1))], #values[1]
       [sg.Text("Forecast period",size=(20,1),justification="left"),sg.Slider(range=(minimum_periode,2*minimum_periode),orientation='h',default_value=minimum_periode)],#values[2]
       [sg.Text("Observation bin",size=(20,1),justification="left"),sg.DropDown(values=frequency,size=(10,1))],#values[3]
       [sg.Text("Add Holidays",size=(20,1),justification="left"),sg.DropDown(values=frequency,size=(10,1))], #values[4]
       [sg.Text('_'  * 100, size=(65, 1))],
       [sg.Text('Fbprophet parameters', font=('Helvetica', 15), justification='left')],
       [sg.Text("Changepoint_prior_scale",size=(20,1),justification="left"),sg.Spin(values=[i for i in np.linspace(0.05,2,10)],initial_value=0.05)], #values[5]
       [sg.Text("Changepoint_range",size=(20,1),justification="left"),sg.Spin(values=[i for i in np.linspace(0.8,0.95,10)],initial_value=0.8)],#values[6]
       [sg.Text("n_changepoints",size=(20,1),justification="left"),sg.Spin(values=np.arange(25,50),initial_value=25)],#values[7]
       [sg.Text('_'  * 100, size=(65, 1))],
       [sg.Text('Plotting parameters', font=('Helvetica', 15), justification='left')],
       [sg.Text("Plot Title",size=(20,1),justification="left"),sg.Input(default_text="Title of Plot for selected",justification="left")], #values[8]
       [sg.Text("Title of y-Axis",size=(20,1),justification="left"),sg.Input(default_text="Title of y-axis",justification="left")],#values[9]
       [sg.Text("Title of x-Axis",size=(20,1),justification="left"),sg.Input(default_text="Title of x-axis",justification="left")],#values[10]
       [sg.Submit(),sg.Cancel()]
       ]
window=sg.Window("Forecast",icon="Mann+Hummel.ico",default_element_size=(40,10)).Layout(layout)
button, values = window.Read()
window.Close()  

我将此脚本另存为“测试.py在一个文件夹中,然后我以管理员的身份打开Anaconda提示符,用脚本导航到该文件夹并执行“pyinstaller”测试.py““

这工作很好,我意识到,好,我可以进入下一步,这是包括fbprophet到我的脚本,因为我想为我的同事在这里,谁不熟悉的编码创建一个图形用户界面。 如果我在脚本中包含fbprophet并再次执行行“pyinstaller测试.py“它执行一个dist文件和一个exe文件。但是如果我打开exe文件,什么都不会发生。我删除了所有的dist和build文件夹,并重复-以100%确保现有的dist-build文件夹不会引发错误,并再次执行该行。我再次得到一个exe文件,如果我点击它,什么也没有发生

所以我假设这个问题是由fbprophet引起的,如果我直接执行的话,fbprophet工作得很好。 我真的试了好几步,但没有成功。如果有人能帮我,请告诉我 如果你也有不同的方向来创建一个exe文件,请让我知道。我认为这可能对其他用户也有帮助:)


Tags: 文件textdefaultdatasizetitlesgexcel
1条回答
网友
1楼 · 发布于 2024-09-19 07:14:04

这不是对问题的直接回答。但这似乎是fbprophet和cxfreeze的一个bug。使用cxfreeze或pyinstaller用fbprophet构建exe文件是不可能的(至少对我来说是这样)

如果有人有答案,请告诉我们

切赫

相关问题 更多 >