2017-09-29 24 views
0

次のライブラリを使用してExpiration_Report.pyという.pyスクリプトを作成しました:pandas、numpy。このコードは、Spyder(Python 3.6)で実行すると完全に正常に動作します。 (すべてのためにアナコンダを使用)(cx_Freezeを使用しているPython3.6)Exeはpandasを実行しませんnumpyアプリケーション

私はその後Expiration_Report.exeにExpiration_Report.pyを変換するために、次のコードで 'setup.py' と呼ばれる別の.pyファイル作成:

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 

それはエラーなしで構築します。ビルドフォルダは.exeファイルでも利用できます。しかし、ビルドフォルダから.exeファイルを実行すると、何も起こりません。

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ファイルを作成するための方法が正しい:ここ

はExpiration_Report.pyスクリプトからコードです。私は単純なスクリプトHelloWorld.pyをexeに変換して正常に動作したためです。それはpandasライブラリをインポートしていないだけでexeを終了します。

答えて

0

おそらく、パッケージリストにpandasとnumpyを追加する必要があります。 cx_freezeは、すべての必要なパッケージを見つけるのに少しばかげているかもしれません。

0

それはCX_freeze 5及び6(私はそれを理解し、これらは最新版である)ため、この(setu.pyファイル内のパッケージを含む)doesn'workようです。 私は同じ問題を抱えていて、ここで私がここに従ったアドバイスをしました。トラブルを起こすような気がする。 これをテストするには、import numpyを非常に単純なテストスクリプトに入れて、フリーズするとクラッシュするのを見てください。

は私のためのソリューションは、Python 3.4のために働いたが、私はそれのpython 3.6の下で働くことを疑う: 私はcx_freezeをアンインストールし、pip install cx_Freeze==4.3.4経由cx_freeze 4.3.4を再インストールして、それが働きました。

関連する問題