打包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:// ...
随机推荐
- Linux 文件与目录管理,Linux系统用户组的管理
一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...
- Ansible 手册系列 一(介绍)
一 介绍 Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack.Ansible 是通过 Python 语言开发.Ansible 平 ...
- activiti 动态自定义流程(包含会签流程)
后台加入工作流步骤(这个不重要,自己实现) package com.blk.integrated.pojo; import java.io.Serializable; import java.util ...
- python:使用itchat实现手机控制电脑
1.准备材料 首先电脑上需要安装了python,安装了opencv更好(非必需) 如果安装了opencv的话,在opencv的python目录下找到cv2.pyd,将该文件放到python的库搜索路径 ...
- hdu 4771 13 杭州 现场 B - Stealing Harry Potter's Precious 暴力bfs 难度:0
Description Harry Potter has some precious. For example, his invisible robe, his wand and his owl. W ...
- bzoj2700
题解: dp dp[i][j]表示i个红,j个绿的最小代价 然后再加上两位k,l,表示k个红连,l个绿连 然后转移 代码: #include<bits/stdc++.h> using na ...
- String.Remove
String.Remove方法注意事项: 1.该方法不改变元字符串: 2.str = ‘’: str.Remove(str.Length-3);明显超限,但是不报错,返回值为''; str = '1 ...
- java中+=详解 a+=b和a=a+b的区别
short a=10; a+=4; System.out.println(a); 1.第一段代码的输出结果为14.执行流程是首先声明变量,判断赋给变量的初始值是否在short类型范围内,如果在则进行强 ...
- 左边的div导航根据右部div内容的高自动调整
div结构如下: <div class="mainbody"> <div class="left">导航</div> < ...
- OpenGL实现3D自由变形
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...