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 ...
随机推荐
- 腾讯云下的CentOS7 配置 FTP 服务器
第一步安装vsftp * yum -y install vsftpd 第二步配置ftp文件 要实现用户不仅可以下载ftp上的内容 还可以删改增加文件到ftp服务器 需要给ftp的目录赋予写入权限 1. ...
- 程序员晋级CTO之路的8大准则
推荐阅读: 大数据智慧平台落地方案 Nginx + 阿里云SSL + tomcat 实现https访问代理 永远别忘了TD 再确认测试代码前,先找别人帮你检查下是否无误.在别人做之前尽量检查出bug并 ...
- Java Cookie工具类
1.Cookie跨域 Cookie不能跨顶级域名访问,但是二级域名可以共享Cookie,所以要实现跨域,有一定的局限性. 2.代码 package com.DingYu.Cookie; import ...
- 6.方法_EJ
第38条: 检查参数的有效性 对于这一条,最常见的莫过于检查参数是否为null. 有时出现调用方未检查传入的参数是否为空,同时被调用方也没有检查参数是否为空,结果这就导致两边都没检查以至于出现null ...
- python爬虫入门urllib库的使用
urllib库的使用,非常简单. import urllib2 response = urllib2.urlopen("http://www.baidu.com") print r ...
- if判断
<!-- 查询用户信息 --> <select id="queryUser3" parameterType="org.pine.mybatis.util ...
- angular 1.2.29版本下 动态添加多个表单、 校验全部、 提交 、ng-form方案
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HDU 1847 Good Luck in CET-4 Everybody!(找规律版巴什博奕)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- Stable Fur Generation on Mesh
After tested the Maya 2015 XGen Grooming, we dropped it, that's really slow and unstable, totally no ...
- vue的diff算法
前言 我的目标是写一个非常详细的关于diff的干货,所以本文有点长.也会用到大量的图片以及代码举例,目的让看这篇文章的朋友一定弄明白diff的边边角角. 先来了解几个点... 1. 当数据发生变化时, ...