笨人python3.6 windows10系统
(离线)官网https://pypi.python.org/pypi/cx_Freeze下载相应的whl,在下载目录执行pip install d:\xxx\cx_Freeze-5.1.1-cp36-cp36m-win64.whl(这个版本由自己电脑和安装的Python版本决定,前面路径由whl文件所在位置决定)
(在线)cmd 输入 pip install cx_Freeze
安装完会在Python安装路径的scripts目录下生成如下文件:
在 C:/ProgramData/Anaconda3/Scripts/Script/ 目录下运行python cxfreeze-postinstall
(目录是cx_Freeze安装的文件夹的路径,也就是上图文件存在的路径)
运行cxfreeze -h
测试是否安装成功,酱紫就可以了
以上步骤参考:https://www.jianshu.com/p/9620d845af0a
需要在setup.py中进行配置,需要将什么打包,命名blabla之类细致而又繁琐的工作。
在网上找了很多人的代码,集百家之长拼凑出来这个最终的代码。学习了很多
#setup代码
import sys
import os
from cx_Freeze import setup, Executable
os.environ['TCL_LIBRARY']=r'C:/ProgramData/Anaconda3/tcl/tcl8.6'
os.environ['TK_LIBRARY']=r'C:/ProgramData/Anaconda3/tcl/tk8.6'
# GUI 程序需要不同的base,默认是控制台程序
base = None
# 判断Windows系统
if sys.platform == "win32":
base = "Win32GUI"
packages = []
#添加 依赖的包
for dbmodule in ['win32gui','win32api' ,'win32con' , 'cx_Freeze']:
try:
__import__(dbmodule)
except ImportError:
pass
else:
packages.append(dbmodule)
options = {
'build_exe':
{
'includes': ['PIL','traceback',r'queue',r'idna.idnadata']
,'packages': packages# 依赖的包
,'include_files':[
r'C:\\ProgramData\\Anaconda3\\envs\\tensorflow',
r'C:\\ProgramData\\Anaconda3\\DLLs\\tcl86t.dll',
r'C:\\ProgramData\\Anaconda3\\DLLs\\tk86t.dll',
r'D:\\SSD\\SSD-Tensorflow',
r'D:\\SSD\\SSD-Tensorflow\\nets',
r'D:\\SSD\\SSD-Tensorflow\\preprocessing',
r'D:\\SSD\\SSD-Tensorflow\\notebooks']
,'path': sys.path, #指定上述的寻找路径
}
}
executables = [
Executable(
# 工程的 入口
script='D:\\SSD\\SSD-Tensorflow\\notebooks\\ship_test_save.py'
, base = base
# 生成 的文件 名字
, targetName = 'ship_detective.exe'
)
]
setup(
# 产品名称
name='ship_detective',
# 版本号
version='1.0',
# 产品说明
description='My detective application!',
options = options,
executables = executables
)
最终在命令行输入介个
生成的EXE就在Scripts文件夹下的build中了~
当然打包过程中也遇到了一些问题,参照了这位博主的博文https://blog.csdn.net/theeternal/article/details/78947971(写得特别好)都得到了解决~