python-使用pyinstaller打包成可执行程序
python-使用pyinstaller打包成可执行程序. 这里使用的是 Python3.6
前篇
- 【Python】使用 PyInstaller 將 Python打包成 exe 檔 - https://medium.com/pyladies-taiwan/python-%E5%B0%87python%E6%89%93%E5%8C%85%E6%88%90exe%E6%AA%94-32a4bacbe351
流程
安装 pyinstaller
1
$ pip3 install pyinstaller
打包. 命令:
pyinstaller -F xxx.py
1
2
3
4
5
6
7e:\its_rummy\tools (rls-money-7324 -> origin)
$ pyinstaller -F tinypng_win.py
70 INFO: PyInstaller: 3.6
71 INFO: Python: 3.6.5
...
8750 INFO: Appending archive to EXE e:\its_rummy\tools\dist\tinypng_win.exe
9086 INFO: Building EXE from EXE-00.toc completed successfully.会生成 build 和 dist 两个目录, 可执行程序在 dist 目录下.
pyinstaller 常用参数介绍
- -h : 查看参数
- -F : 打包成一个 exe 文件
- –icon : icon 图片
- -w : 使用视窗, 无控制台
- -c : 使用控制台, 无视窗
- -D : 创建一个目录, 包含 exe 以及其他一些依赖性文件
踩坑
找不到 tls 证书
报错: Could not find a suitable TLS CA certificate bundle
解决办法: 从 Python 安装目录下找到 Lib\site-packages\certifi\cacert.pem
, 复制到程序能读到的地方
代码中加入:
1 | os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(SelfPath, 'cacert.pem') # cacert.pem 路径 |
重新打包即可.
参考: https://blog.csdn.net/qq_40770527/article/details/104847046
找不到模块
报错: ModuleNotFoundError: No module named xxx
打包的时候, 需要冲 import 模块的目录去打包, 才能依赖打包进去. 比如
1 | F:\z_mywiki\test_script\python |
需要在 python 目录下打包, 才能将 tool 里面的东西打进去.
1 | F:\z_mywiki\test_script\python (master -> origin) |
打出来的需要管理员权限
这个换了个名字导出来就不需要了, 可以试试换多几个名字.
需不需要管理员权限, 看 icon 右下角即可.
安装 pyinstaller 环境变量找不到
原因是安装 python 时, 没有勾选 添加到环境变量
解决办法: 手动添加进环境变量, 目录 C:\Users%USER%\AppData\Roaming\Python\Python38\Scripts