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 ...
随机推荐
- 【Java每日一题】20170207
20170206问题解析请点击今日问题下方的“[Java每日一题]20170207”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...
- How to Create a First Shell Script
How to Create a First Shell Script Shell scripts are short programs that are written in a shell pr ...
- Javascript继承1:子类的的原型对象----类式继承
//声明父类 function Parent(){ this.parentValue = true; this.favorites = ['看书'] } //为父类添加公有方法 Parent.prot ...
- 设计模式—模板方法的C++实现
这是Bwar在2009年写的设计模式C++实现,代码均可编译可运行,一直存在自己的电脑里,曾经在团队技术分享中分享过,现搬到线上来. 1. 模板方法简述 1.1 目的 定义一个操作中的算法骨架,而将一 ...
- Less 结合 nth-child 选择器循环生成样式
问题描述: 实现头像的堆叠效果 从第二个头像开始,每个头像都会盖住前一个头像上,遮盖的宽度为 30px 实现叠加的方式有很多,比如给每个头像添加 translateX 属性,或者使用负值 margin ...
- python笔记之time模块
方法一:time.perf_counter() 说明:返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间.由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的. 代码示 ...
- 2016年 CodePen 最热门的前端代码 Top 100
每年 Codepen 都会公布年度最热门的代码片段,这些片段有的技术超弦,有的超实用.有的超有创意,有空看看都能给我们带来灵感. 同时从 Codepen 的代码上也能学习一些牛人的写法,不管是设[…… ...
- 洛谷P4103 [HEOI2014]大工程(虚树 树形dp)
题意 链接 Sol 虚树. 首先建出虚树,然后直接树形dp就行了. 最大最小值直接维护子树内到该节点的最大值,然后合并两棵子树的时候更新一下答案. 任意两点的路径和可以考虑每条边两边的贡献,\(d[x ...
- Sysbench Sysbench在centos系统下的安装
Sysbench在centos系统下的安装 by:授客 QQ:1033553122 测试环境: CentOS-7-x86_64-DVD-1503-01.iso 下载地址: http:/ ...
- 基于OpenSSL的HTTPS通信C++实现
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL.Nebula是一个为开发者提供一个快速开发 ...