Python打包—Pyinstaller
一 前言
在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好,其他人不能直接看到python代码;第二,打包后的exe程序无需再安装相应的模块即可直接使用;其中,第二条是我们做打包工作的主要考虑,方便工具的分发和使用。
二 python打包工具简洁
Python是一门开放、包容、优雅的开发语言,所以,相关领域的模块或工具自然是很多的,其中打包工具,比较广泛的是以下三个:
Pyinstaller
py2exe
Cx_freeze
但是,在此,我只想介绍Pyinstaller的使用,原因是:该工具使用非常简单,只需要一条命令,无需像其他工具还要编写setup文件;另外,该工具更新快,能够适应python的更新,目前发布到3.4版本了。当然,还有其他原因,对其他同质的工具了解不多,拥有Pyinstaller,足够了!
三 Pyinstaller安装方法
依稀记得在py2的时代,使用pyinstaller2.x是直接下载的windows安装包进行安装,目前迁移到py3,再次关注pyinstaller时,它已经发展到了3.4,并且支持2.7 or 3.4-3.7,这点非常重要,可能其他打包工具还不能这么好的支持python3。
Pyinstaller的安装变的非常简单,如下:
pip install pyinstaller
使用pip安装的好处是,会把相关的依赖一并安装了。
四 Pyinstaller用法
该工具好用的主要表现,莫过于使用简单,打包一个python项目只需一条命令,如下:
Pyinstaller.exe –F -i path/youricon.ico path/yourscript.py
命令过后,脚本就被打包成exe文件了,而且图标也换成你指定的ico图片了,是不是很便捷呀!
当然,你也可以不指定exe图标,此时,无需增加-i 参数,-F参数将脚本打包成单一的exe文件,一般使用该命令即可。

五 报错及解决方法
安装完成后,打包程序报错:“failed to create process”
发生该报错的可能原因是:
1. python的安装路径有空格,比如安装在Program Files (x86)目录,pyinstaller版<3.4;
2. pyinstaller==3.4;
针对第一种情况,路径有空格,解决方法是:
在Python安装目录下的Scripts中找到pyinstaller-scripts.py打开,把第一行的路径加上引号,如#!d:\program files (x86)\python36\python.exe改为#!"d:\program files (x86)\python36\python.exe",解决问题。
针对第二种情况,pyinstaller已经是最新版本,即便python安装路径有空格,pyinstaller-scripts.py中解释器的路径也会被自动加上引号,一种可行的解决方法是:
把路径切换到python安装路径的scripts目录,执行
python pyinstaller-script.py path/YourScript.py
进行打包,即可解决问题。
Python打包—Pyinstaller的更多相关文章
- python打包--pyinstaller打包报错
先来一段报错信息 目前打包主要涉及socket模块出现的报错 missing module named resource - imported by posix, C:\Users\Administ ...
- Python打包-Pyinstaller
我们知道,Python很优雅,很值得学习.但是Python是解释性语言,代码需要有Python解释器才能执行,相比较我们平时直接运行exe等可执行文件多了一步的麻烦. 于是,希望能将Python程序打 ...
- python打包exe pyinstaller 简单使用
源由 最近公司让做了一个小工具,使用python写的,写完之后要求能放在其它电脑上运行,于是就开始寻找方案; 按网上的说法 py2exe已经很久没更新了,资料也不多: 于是就采用pyinstaller ...
- $python打包工具pyinstaller的用法
pyinstaller是一个很好用的python打包工具,在Windows环境下可以将python脚本打包成一个exe可执行文件,并且脚本中所依赖的各种第三方库在打包时候都会被统一处理到一起,这样打包 ...
- python使用Pyinstaller打包
一.前言 python文件打包,将.py文件转化成.exe文件(windows平台),可以使用Pyinstaller来打包 Pyinstaller可以在全平台下使用,但是请注意打包生成的文件不能在全平 ...
- python打包成exe
目前有三种方法可以实现python打包成exe,分别为 py2exe Pyinstaller cx_Freeze 其中没有一个是完美的 1.py2exe的话不支持egg类型的python库 2.Pyi ...
- 反编译python打包的exe文件
目录 1.前言 2.使用环境 3.还原过程 4.号外 5.exe文件和所用到的反编译工具 6.参考 7.去签名(补漏) 前言 拿到了利用驱动人生进行传播的病毒样本,发现是python打包成的exe文件 ...
- 关于python打包成exe的一点经验之谈
我经常用python写些脚本什么的,有时候脚本写完以后,每次运行都得在IDE打开在运行,很麻烦,所以经常将python编译成exe.SO...有了一点经验,在这和大家分享一下. python ...
- Python打包成exe,pyc
D:\mypython\path\ C:\Python27\Scripts\pyinstaller.exe -w mypython.py # Python打包成exe D:\mypython\path ...
随机推荐
- Android Service解析
Android Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件,它分为两种工作状态,一种是启动状态,主要用于执行后台计算:另一种是绑定状态,主要用于其他组件和Service ...
- thinkphp模板中,checkbox回显问题
thinkphp 模板里面可以这样写包含操作 //in 标签 <in name="变量名" value="值1,值2,...">要输出的内容< ...
- mysql语句执行顺序图示
- SAP WM 有无保存WM Level历史库存的Table?
SAP WM 有无保存WM Level历史库存的Table? 前日下班回家的路上,收到一个前客户内部顾问同行发过来的微信,问我在SAP系统里哪个表是用来存储WM Level历史库存的. 这个问题问住了 ...
- Spring学习之旅(一)极速创建Spring框架java工程项目
编译工具:eclipse 1)创建java工程:Spring_helloworld 2)导入所需jar包: 3)创建一个实体类: public class HelloBeans { private S ...
- Python 实现批量从不同的Linux服务器下载文件
基于Python实现批量从不同的Linux服务器下载文件 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...
- Android为TV端助力 运算符&,|,^
1.&按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位进行比较,&计算中,只要有一个是0就算成02.|运算转换成2进制进行比较,两个位只要有一个为1,那么结果就是1,否则 ...
- android:Android开发不得不收藏的Utils
AndroidUtils AndroidUtils Android开发不得不收藏的Utils 之前写这篇文章主要是项目应用到的Utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这 ...
- springboot 学习之路 2(注解介绍)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- codeforces 803D Magazine Ad(二分+贪心)
Magazine Ad 题目链接:http://codeforces.com/contest/803/problem/D ——每天在线,欢迎留言谈论. 题目大意: 给你一个数字k,和一行字符 例: g ...