2017-09-29 101 views
0

我使用以下庫編寫了名爲Expiration_Report.py的.py腳本:pandas,numpy。這個代碼在Spyder(python 3.6)中執行時運行得非常好。(Python3.6使用cx_Freeze)exe不運行熊貓,numpy應用程序

(使用蟒蛇的一切)

然後我創建了一個名爲 'setup.py' 使用下面的代碼另一個.py文件,以Expiration_Report.py轉換爲Expiration_Report.exe:

import sys 
    from cx_Freeze import setup, Executable 

    # Dependencies are automatically detected, but it might need fine tuning. 
     build_exe_options = {"packages": ["os"], 
       "excludes": ["tkinter"]} 

    # GUI applications require a different base on Windows (the default is for a 
    # console application). 
    base = None 
    if sys.platform == "win32": 
     base = "console" 


    setup( name = "my prog", 
     version = "1.0", 
     description = "My application!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("Expiration_Report.py", base = base)]) 

然後在命令提示符中輸入:

python setup.py build 

它的構建沒有任何錯誤。 build文件夾也可用於.exe文件。但是,當我從build文件夾運行.exe文件時:沒有任何反應。

下面是從Expiration_Report.py腳本代碼:

import pandas as pd 
    import numpy as np 

    df = pd.read_excel('C:/Users/Salman/Desktop/WIP Board - 007.xlsx',       index_col=None, na_values=['NA']) 

    df.columns = df.iloc[12] 
    df.columns 

    df.shape 

    df = df.dropna(axis=1, how = 'all') 
    df 

    df.columns 

    df1 = df.copy() 
    df1 = df1.iloc[13:] 
    df1 

    df1 = df1.dropna(axis=1, how = 'all') 
    df1.shape 

    from datetime import datetime 
    print(str(datetime.now())) 

    df2 = df1.copy() 
    df2["Now_Time"] = pd.Series([datetime.now()] * (13+len(df1))) 

    df2["Now_Time"] 

    df2 

    df2.fillna(value='NaN') 

    df2 = df2.dropna(how='any') 

    df2.shape 

    df3 = df2.copy() 
    df3 = df3[df3.Size>0] 
    df3['Lot Expiration Date'] = pd.to_datetime(df3['Lot Expiration Date']) 

    df3['Days_Countdown'] = df3[['Lot Expiration Date']].sub(df3['Now_Time'], axis = 0) 

    df3.dtypes 

    df3['Hours_Countdown'] = df3['Days_Countdown']/np.timedelta64(1, 'h') 

    df3 = df3.sort_values('Hours_Countdown') 

    df_expiration = df3[df3.Hours_Countdown<12] 

    df_expiration['Hours_Countdown'].astype(int) 
    df_expiration 

    df_expiration.to_excel('C:/Users/Salman/Desktop/WIP Board - 000.xlsx', sheet_name = 'Sheet1') 

創建從cs_Freeze一個exe文件的方法是正確的。因爲我將一個簡單的腳本HelloWorld.py轉換爲exe,並且它工作正常。它不是導入熊貓庫,只是退出exe文件。

回答

0

也許您需要將pandas和numpy添加到軟件包列表中。當找到所有必要的軟件包時,cx_freeze可能會有點不妥。

0

看來,這(包括在setu.py文件包)doesn'work爲CX_freeze 5和6(據我所知,這些都是最新的版本)。 我遇到了同樣的問題,以及我在這裏提出的任何建議,包括添加軟件包。這似乎是麻煩,導致麻煩。 你可以通過將import numpy放在你非常簡單的testscript中來測試它,並且在你凍結時看到它崩潰。

對我來說,解決方案爲蟒蛇3.4,但我懷疑它的作品下的Python 3.6: 我卸載cx_freeze,並通過重新安裝pip install cx_Freeze==4.3.4 4.3.4 cx_freeze,然後它的工作。

相關問題