PyInstaller打包Python源文件为可执行程序exe
1. 安装PyInstaller
使用命令:pip install PyInstaller时可能会由于网络的问题出现以下问题:
pip._vendor.urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
此时修改命令为:pip install --default-timeout=1000 PyInstaller
问题未解决出现了其他问题,使用镜像下载也无法解决;
问题解决:卸载pip,python -m pip uninstall pip,然后在pycharm的settings-project interpreter那里提示缺少文件,直接点击下载,下载的是旧版本pip10.0.1,再使用命令pip install PyInstaller安装成功;
# dos窗口执行以下命令
# 卸载pip
python -m pip uninstall pip
# 通过pycharm提示安装pip(这里会安装到旧版本10.0.0.1),或者到官网上下载pip再通过命令安装
# 此时安装PyInstaller成功
pip install PyInstaller
(旧版本升级提示使用该命令:python -m pip install --upgrade pip,但升级失败,仍旧提示升级,或者出现AttributeError: 'NoneType' object has no attribute 'bytes',这里使用网上给的方法:easy_install -U pip,第一次可能失败,多试几次,成功后使用pip show pip查看版本)
# pip升级
# 升级失败
python -m pip install --upgrade pip
# 改用命令,升级成功
easy_install -U pip
# 查看版本
pip show pip

2. 打包命令的参数
-i icofile:生一个带有图标的exe程序,图标必须是.ico的格式,图片转换成ico格式可以通过比特虫网站
-F:打包成一个独立的exe文件,否则是一个带各种dll和依赖的文件夹
-W:使用窗口界面,无控制台
-c:使用控制台,无窗口界面(小写的c)
-D:创建一个目录,里面包含exe及其他一些依赖性文件
pyinstaller -h:可以查看参数
3. 执行命令命令pyinstaller -F xxx.py
cmd下,在哪个目录下运行该pyinstaller -F xxx.py命令,哪个目录下就会生产build和dist文件夹以及.spec文件,其中.exe文件在dist文件夹下;
当打包目录和源代码目录不一致时,需要用绝对路径;
打包后只需要exe文件即可,其他文件可删除,在没有python的环境下可以直接运行(因为pyinstaller打包了python解析器和脚本);
针对下边这个源代码进行打包:
pyinstaller -F -c -i a.ico test.py
# -c需要终端输入
# 我一起放到了GitHub里了(是一个终端猜词小游戏):https://github.com/NoobZeng/GuessWords/blob/master/test.exe

注意:图标的大小大小要适当,太大会报错:ValueError: read length must be non-negative or -1
4. 关于图标
将图标从dist目录移到其他地方,如果是看到python样式的,需要移动一下位置;

PyInstaller打包Python源文件为可执行程序exe的更多相关文章
- 使用pyinstaller打包Python应用,生成EXE执行文件
在命令行中切换到要打包的程序所在目录,或者在程序目录打开命令行,直接输入下面的指令即可pyinstaller -F xxx.py pyinstaller -F -w -i manage.ico app ...
- 使用PyInstaller打包Python角本为exe程序
一.经过测试 在Windows平台请使用Windows平台的pyinstaller,Linux平台请使用Linux平台的Pyinstall角本. 二.命令如下: pyinstaller -F --ic ...
- Pyinstaller 打包python 到exe 在windows下免python环境运行python
在创建了独立应用(自包含该应用的依赖包)之后,还可以使用 PyInstaller 将 Python 程序生成可直接运行的程序,这个程序就可以被分发到对应的 Windows 或 Mac OS X 平台上 ...
- PyInstaller 打包 python程序成exe
pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...
- “failed to excute script xxx” PyInstaller 打包python程序为exe文件过程错误
在使用PyInstaller打包python程序,打包命令为: pyinstaller -F -w -i manage.ico yourpyfile.py 顺便说一下几个参数的作用 -F:是直接生成单 ...
- pyinstaller linux系统下打包python源文件
将python程序放在其他linux服务器中执行,通常linux服务器中默认安装python2.6,很多情况下需要升级为2.7 且要安装程序中需要的第三方模块,配置较为麻烦,所以通过在本地linux ...
- PyInstaller打包python脚本的一些心得
PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...
- 树莓派(Raspbian系统)中使用pyinstaller封装Python代码为可执行程序
一.前言 将做好的Python软件运行在树莓派上时,不想公开源码,就需要对文件进行封装(或称打包),本文主要介绍使用pyinstaller封装Python代码为可执行程序. Python是一个脚本语言 ...
- (转)使用 PyInstaller 把python程序 .py转为 .exe 可执行程序
最近使用Python为项目开发一款绘图工具(绘出 声场三维模型).因为希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个的exe文件.PyInstaller恰满足这个需求.本 ...
随机推荐
- ArrayList 详解
基本介绍 ArrayList: 支持null元素.有顺序.元素可以重复. 可以动态增长和缩减的索引序列,基于数组实现的List类(查询效率高,而在插入删除性能下降很多(需要移动数组元素)). 底层的数 ...
- 「题解」:毛一琛/$cow$ $subsets$
问题 A: 毛一琛/$cow$ $subsets$ 时间限制: 1 Sec 内存限制: 512 MB 题面 题面谢绝公开. 题解 题名貌似是个大神??看起来像是签到题然后就死了. 首先$O(3^n) ...
- paper 15 :整理的CV代码合集
这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...
- BZOJ 3534: [Sdoi2014]重建(Matrix Tree)
传送门 解题思路 比较容易看的出来矩阵树定理.然后就怒送一Wa,这个矩阵树定理是不能直接用的.题目要求的其实是这个玩意. \[ ans=\sum\limits_{Tree}( \prod\limits ...
- NX二次开发-UFUN获取边的端点UF_MODL_ask_edge_verts
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_ui.h> #include <uf ...
- C++实现的B树
参考资料:按第一个参考资料构建,代码基本上来自于第二个参考资料 https://www.cnblogs.com/guohai-stronger/p/9225057.html https://www.c ...
- ParameterizedThreadStart task
using System;using System.Diagnostics;using System.Threading;using System.Threading.Tasks; namespace ...
- 漏洞:会话固定攻击(session fixation attack)
什么是会话固定攻击? 会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会 ...
- POJ 3667 线段树区间合并裸题
题意:给一个n和m,表示n个房间,m次操作,操作类型有2种,一种把求连续未租出的房间数有d个的最小的最左边的房间号,另一个操作时把从x到x+d-1的房间号收回. 建立线段树,值为1表示未租出,0为租出 ...
- vue+nginx配置二级域名
[1]修改路由文件 [2]修改配置文件 [3]修改本机nginx配置文件 [4]修改服务器nginx配置文件 [5]重启nginx文件,用二级域名访问 http://192.168.199.xxx:7 ...