打包流程
(1) 通过命令使用Pyinstaller
-
#创建虚拟环境–减小Size
conda create -n Kyle python=3.6
-
#激活虚拟环境
conda activate Kyle3.6
-
#查看当前存在的虚拟环境
conda env list
-
#切换到打包路径下
CD D:\work\study\Kyle
-
#安装相应第三方库
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ PyQt5==5.13.0 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pandas==1.0.3 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ XlsxWriter==1.0.2 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pyspider
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ PyQt5==5.13.0 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pandas==1.0.3 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ XlsxWriter==1.0.2 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pyspider
小Tips
安装相应第三方库国内镜像源:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
-
#Pyinstaller打包
Pyinstaller -F -w -i kyle.ico KyleChear.py
-
#关闭当前虚拟环境
conda deactivate
-
#删除虚拟环境
conda env remove -n Kyle3.6
-
小贴士
Pyinstaller打包 建议参考:https://blog.csdn.net/wuShiJingZuo/article/details/115291276 Pyinstaller -F -w -i kyle.ico KyleChear.py 其中kyle.ico为图标文件 -F 表示生成单个可执行文件 -w 表示去掉控制台窗口,这在GUI界面时非常有用。 -i 表示可执行文件的图标
-
可能会踩的坑
Pyinstaller打包报错 -------------------------------------------------------------------------------- File "c:\programdata\anaconda3\envs\v1\lib\site-packages\PyInstaller\hooks\hook-distutils.py", l hiddenimports = [sysconfig._get_sysconfigdata_name()] TypeError: _get_sysconfigdata_name() missing 1 required positional argument: 'check_exists' --------------------------------------------------------------------------------
解决方案
解决方案: 转到python交互式shell,做 $ python >> import sysconfig >> print(sysconfig.__file__) >> 这应该为您提供文件所在的位置sysconfig。然后你需要去那个文件并编辑源代码, 修改了check_exists= True
源文件修改后
def _get_sysconfigdata_name(check_exists= True): res = os.environ.get('_PYTHON_SYSCONFIGDATA_NAME', None) if res and check_exists: try: loader = importlib.util.find_spec(res) except: res = None if res: return res return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format( abi=sys.abiflags, platform=sys.platform, multiarch=getattr(sys.implementation, '_multiarch', ''))
(2) 使用auto-py-to-exe
- python 环境要大于或等于 2.7
- 然后在 cmd 里面输入:pip install auto-py-to-exe ,输入完成之后,pip 就会安装 auto-py-to-exe 包
- 输入auto-py-to-exe 启动 auto-py-to-exe 程序
功能介绍
-
Script Location :Script Location 主要是指定我们要打包的 python 文件
-
Onefile Onefile:下有两个选项,分别是:One Directory 和 One File.如果选择 One Directory ,那么程序打包完成后会是一个文件夹的形式展现 ; 如果选择 One File ,那么程序打包完成后就一个 .exe 文件
-
Console Window: Console Window 主要设置打包程序运行时,是否出现控制台. Console Based : 当打包的程序运行时会显示一个控制台界面 ; Window Based (hide the console) : 会隐藏控制台界面,主要用于带有 GUI 的 python 程序打包
-
Icon:用于指定打包程序的图标
生成exe文件