打包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:// ...
随机推荐
- IRC BOT原来是利用IRC下发C&C命令——在xx云环境遇到了,恶意软件开的是6666端口
Backdoor/IRC.RpcBot 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! Backdoor/IRC.RpcBot是一些批处理文件.脚本文件和执行文件的集合,也是 ...
- SHOW INNODB STATUS 探秘
[InnoDB系列] -- SHOW INNODB STATUS 探秘 SHOW INNODB STATUS 探秘 转载:http://imysql.com/2008_05_22_walk_throu ...
- navicat for mysql 导入SQL Server显示中文乱码解决办法
解决方法是在navicat里右击一个连接,选择连接属性,切换到高级选项卡,去掉“使用mysql字符集”前的对勾,在编码里选择utf-8
- Prism 4 文档 ---第3章 管理组件间的依赖关系
基于Prism类库的应用程序可能是由多个松耦合的类型和服务组成的复杂应用程序,他们需要根据用户的动作发出内容和接收通知进行互动,由于他们是松耦合的,他们需要一种方式来互动和交流来传递业务功能的需求. ...
- Java类的finalize()方法
Java的Object类提供了一个finalize()方法,签名如下: protected void finalize() throws Throwable { } 该方法在JVM进行垃圾回收时之行, ...
- 【css】响应式布局入门【转】
最近研究响应式设计框架的时候,发现网上很多相关的属性介绍,却很少有系统的入门级使用的文章,我自己整理了一篇入门知识,并没有什么高深的理论,也不牵扯到框架. 目前已经越来越多的站点以及wap站点使用响应 ...
- Makefile.am文件的实例讲解
Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候 ...
- EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!
2017年很长很长一段时间没有更新EasyDarwin开源项目了,虽然心里有很多EasyDarwin功能扩展的计划:比如同步录像.同步RTMP/HLS直播输出.拉模式转发优化.Onvif接入.GB28 ...
- 看完前任三,想起我的前任java女程序员,她曾教会我……
前任三最近非常火了,票房蹭蹭往上升,昨天也去电影院看了,想起了我的前任,她是一名女程序员,为了让我学好java,她曾经亲自教我Java的算法,学算法是件非常重要的事,在这忍住回忆的悲伤,分享给你们. ...
- BDD测试框架Spock概要
前言 为了找到一个适合自己的.更具操作性的.以DDD为核心的开发方法,我最近一直在摸索如何揉合BDD与DDD.围绕这个目标,我找到了Impact Mapping → Cucumber → Spock ...