打包python文件,让文件程序化
通过对源文件打包,Python程序可以在没有安装 Python的环境中运行,也可以作为一个独立文件方便传递和管理。
现在网上主流的打包方式有两种py2exe或者pyinstaller两款多平台的Python程序打包为exe的免费工具。
py2exe
py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具。
py2exe是发布在开源许可证下的。
安装:
下载并运行与你所安装的Python对应的py2exe版本的installer。
下载地址:http://www.py2exe.org/
运行:如果你有一个名为xxx.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如xinxinchen.py,在其中的setup函数前插入语句import py2exe 。
- #xinxinchen.py
- from distutils.core import setup
- import py2exe
- setup(console=["xxx.py"])
结果:上面的命令执行后将产生一个名为dist的子目录,其中包含了xxx.exe,python36.dll,library.zip这些文件。
pyinstaller
安装pyinstaller:
1,在Windows中,pyinstaller依赖PyWin32,pypiwin32
如果在安装pyinstaller时使用的是pip或者easy_install会自动pypwin32,只需要手动安装Pywin32即可
安装命令:
pip install pywin32
下载地址:
GitHub版本,https://github.com/pyinstaller/pyinstaller/
官网下载地址,http://www.pyinstaller.org/
2.在Mac中,推荐使用一种Mac工具Platypus。
使用shell脚本调用python工具,然后将virtualenv和python工程均打包入app。
使用这种工具的优先是能将工程打包为app,不再是文件夹,图形化傻瓜式操作;缺陷是打包后的app体积比较大。
下载地址:
https://github.com/sveinbjornt/Platypus
注意:
如果是通过Pyinstaller打包Mac可执行文件,在修改spec文件时,不允许直接双击打开后编辑,需要使用类似sublime Text的编辑器编辑,否则会报莫名语法错误。
运行pyinstaller:在需要打包的文件目录下执行:pyinstaller xxx.py
成功打包:
执行完成后,将会生成dist和build两个文件夹。(文件生成位置与cmd起始位置有关)其中 ,build 目录是 pyinstaller存储临时文件的目录,可以安全删除。最终的打包程序在dist内部的python_test文件夹下。目录中其他文件是可执行文件python_test.exe的动态链接库。
如果程序打包过程没有报错,则会生成3个文件夹(有时候是2个),其中名为dist的文件夹中会有一个myfile.exe文件,运行一下,如果没有问题就打包成功,可以把这个exe文件单独拿出去用,其他的生成的文件夹可以删掉了
常用参数的使用方法如下:
- h 查看帮助,来查看参数
--clean 清理打包过程中的临时文件
-D, --onedir 默认值,生成dist文件夹,创建一个目录里面包含exe以及其他一些依赖性文件
-F, --onefile 在dist文件夹中只生成独立的打包文件
-i <图标文件.ico> 指定打包程序使用的图标(icon)文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
图标替换:
pyinstaller -F --icon=xinxinchen.ico SevenDigitsDrawV2.py
xinxinchen.ico 是一个图标名,和当前的SevenDigitsDrawV2.py文件在一起
ico图标文件获取
1.阿里巴巴矢量图库 http://www.iconfont.cn/
2.比特虫在线制作 http://www.bitbug.net/
打包python文件,让文件程序化的更多相关文章
- java打包python到exe文件
最近想把写的python代码打包,以供没用安装python环境的同事使用,需求如下: 无python环境也可执行 文件尽量少,不要太乱 程序体积尽量小 如果需要更新的话重复类库不用更新 采用方案如下: ...
- python的py文件打包成exe
一.首先需要安装Pyinstaller-- 使用pip来安装模块 (我电脑上装的是python的一个编译环境Anaconda,如果电脑上装的是python自带的IDE的话,就直接进入python的安装 ...
- 利用pyinstaller 打包Python文件
1.下载安装pyinstaller模块 cmd 命令: pip install pyinstaller cmd命令: pip list 查看自己安装的模块 2.建议把要大包的Python文件单独放到新 ...
- “failed to excute script xxx” PyInstaller 打包python程序为exe文件过程错误
在使用PyInstaller打包python程序,打包命令为: pyinstaller -F -w -i manage.ico yourpyfile.py 顺便说一下几个参数的作用 -F:是直接生成单 ...
- win7 32位用pyinstaller打包Python和相关html文件 成exe
http://tieba.baidu.com/p/3060401749?traceid= 安装 pyinstaller 然后 第一步你的脚本里面要做相应处理,添加一个函数:def resource_p ...
- 打包python文件为exe文件(PyInstaller工具使用方法)
最近做的新浪微博爬虫程序,打算打包成.exe软件以方便使用,网上找到一个很好的打包工具pyinstaller,这里记录一下打包的方法. 一.下载pyinstaller 我使用的版本为PyInstall ...
- pyinstaller打包python文件成exe(原理.安装.问题)
py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...
- Python脚本打包成exe执行文件
需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...
- Python打包成exe,文件太大问题解决办法
Python打包成exe,文件太大问题解决办法 原因 解决办法 具体步骤 情况一:初次打包 情况二:再次打包 原因 由于使用pyinstaller打包.py文件时,会把很多已安装的无关库同时打包进去, ...
- Python绘制PDF文件~超简单的小程序
Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...
随机推荐
- Mycat跨分片Join
1 前言 Mycat目前版本支持跨分片的join,主要实现的方式有四种. 全局表 ER分片 HBT(参考MyCAT人工智能解决跨分片SQL.docx) ShareJoin ShareJoin在开发版中 ...
- C#笔记 -- 协变、逆变
协变 理解:在泛型和委托中, 让使用某个泛型参数A的类型可以用一个使用由A派生的泛型参数B的类型实例化,(小=> 大)如 // IEnumerable<Animal> 与 Lis ...
- node 封装db层
var db = {}; var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: , host: '1 ...
- 转载-lvs官方文档-LVS集群中的IP负载均衡技术
章文嵩(wensong@linux-vs.org) 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN ...
- (转)Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法
出现的错误提示如下: 下午9:11:27 All files are up-to-date下午9:11:27 All files are up-to-date下午9:11:27 Error runni ...
- Linux之VIM常用功能
介绍:vim包含三种模式分别为 命令模式:浏览文件,临时更改vim的工作方式,对字符批量处理(也可进行配置) 插入模式:对文件内容进行编辑 退出模式:退出VIM操作 一.命令模式 1.调整vi ...
- 迭代器、foreach循环、泛型集合
集合的迭代 语法:Iterator<Object> it=集合.iterator(); while(it.hasNext()){ Object obj=it.next(); } is.ha ...
- Vim技能修炼教程(4) - 基本功
基本功 前面我们学会了插件管理器和如何实现语法高亮,相信大家已经从中体会到了vim插件的强大功能.现在,是时候回来补一补基本功了. Vi有三种主要模式,正常模式,插入模式和可视化模式.正常我们推荐的方 ...
- Android深入理解JNI(一)JNI原理与静态、动态注册
前言 JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层.这一个系列我们来一起深入学习JNI. ...
- liunx工具学习之taskset
当你优化多线程任务的时候,发现某个线程在不同的核上跳转较大,从而耗费CPU的时候想法肯定是想可以把对应线程绑定到特定的核上,可是每次这样操作每次尝试看效果的时候都要重启进程,那有没有一个工具可以直接处 ...