網上介紹的將python文件打包成exe文件的模塊主要有三個:py2exe,pyinstaller,cxfreeze三種。我現在用的是python3.6版本,經過我的測試,py2exe沒有行得通,pyinstaller對於簡單的文件還可以,稍微複雜的帶有導入模塊的文件就會報錯。最後我是通過cxfreeze模塊打包成功的,不過打包過程也是非常的艱辛。
首先,下載安裝cx_Freeze包。
pip install cx_Freeze==6.0b1
安裝後在C:\Users\jiawe\Anaconda3\Scripts文件夾下生成三個文件cxfreeze、cxfreeze-postinstall、cxfreeze-quickstart.
在控制臺將路徑切換到這三個文件的目錄下,
輸入python cxfreeze-postinstall運行得到cxfreeze-quickstart.bat文件,接著運行python cxfreeze-quickstart文件進行快速配置setup.py文件,
運行後剛才的目錄下面會生成一個setup.py文件,然後運行python setup.py build等待打包處理,這期間可能會出現一些問題,包括
KeyError: 'TCL_LIBRARY'或者找不到依賴包什麼的,setup.py配置模板大概如下:
from cx_Freeze import setup, Executable# Dependencies are automatically detected, but it might need# fine tuning.options = { 'build_exe': { 'excludes': [], 'packages': ['pandas', 'numpy', 'scipy'], } }import osimport sysos.environ['TCL_LIBRARY']="C:\\Users\\jiawe\\Anaconda3\\tcl\\tcl8.6"os.environ['TK_LIBRARY']="C:\\Users\\jiawe\\Anaconda3\\tcl\\tk8.6"#base = 'Win32GUI' if sys.platform=='win32' else Nonebase = 'Console'executables = [Executable('C:\\pythonstudy\\chunwan\\testpy\\excelread.py', targetName='excelread.exe',base=base)]setup(name='test',version = '1.0',description = '2',options = options,executables = executables)