python打包成exe
目前有三种方法可以实现python打包成exe,分别为
- py2exe
- Pyinstaller
- cx_Freeze
其中没有一个是完美的
1.py2exe的话不支持egg类型的python库
2.Pyinstaller2.1打包成单独的exe后不支持中文路径,最新版的在win10下打包的exe不可以在之前版本的windows上运行。不过还好的是2.0版本支持中文路径,不过2.0版本不支持安装,需要单独使用
3.cx_Freeze无法打包成单独的exe,只能打包成msi安装文件
1.py2exe
关于py2exe,首先要注意的是安装的版本,因为即使你用的是python2的pip来安装py2exe,它还是会给你装上py2exe 0.9xx ,而这个版本是python3使用的,python2 会报错。python2的兼容版本是0.6的
操作方法:
1.首先就是把你写的一堆py文件放到一个文件夹中,如果你写的是窗口程序,也不需要把后缀改成pyw
2.然后在目录下建一个setup.py文件:
gui程序如下
from distutils.core import setup
import py2exe
import sys
#this allows to run it with a simple double click.
sys.argv.append('py2exe')
py2exe_options = {
"includes": ["sip"],
"dll_excludes": ["MSVCP90.dll",],
"compressed": 1,
"optimize": 2,
"ascii": 0
}
setup(
name = 'E_hentai Downloader',
version = '1.0',
windows = ['E_hentai.py',],
zipfile = None,
options = {'py2exe': py2exe_options}
)
控制台如下
from distutils.core import setup
import py2exe
import sys
# this allows to run it with a simple double click.
sys.argv.append('py2exe')
py2exe_options = {
"includes": ["sip"],
"dll_excludes": ["MSVCP90.dll", ],
"compressed": 1,
"optimize": 2,
"ascii": 0,
"bundle_files": 1
}
setup(
name='Anhona Downloader',
version='1.0',
console=["AnhonaDownloader.py"],
zipfile=None,
options={'py2exe': py2exe_options}
)
上面的option选项中还可以加上一句
"bundle_files": 1
这个代表打包成一个单文件,需要注意的是,在打包pyqt的时候,最好不要加上这个选项,因为这个相当于静态编译,不
会去连接外面的库,所以会导致编译出来后无法加载jpg图片,即使你添加了addLibraryPath。
3.在命令行里面运行 python setup.py py2exe 即可打包完工(最好进入当前文件夹,这样可以在当前目录生成exe)
附加:
如果你是打包的pyqt,记得把plugins拷贝到应用程序目录下,包括pyqt4目录下的qt.conf(等同于addLibraryPath)
2.pyinstaller
这个比较容易使用,如果是控制台程序支持输入下面的命令
pyinstaller --console --onefile --icon="my.ico" xxxxx.py
3.cx_freeze
这个和py2exe比较像,需要一个setup.py文件,内容如下
# -*- coding: utf-8 -*-
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
# GUI applications require a different base on Windows (the default is for a
# console application).
setup(name="AnhonaDownloader",
version="1.0",
description="My GUI application!",
options={"build_exe": build_exe_options},
executables=[Executable("AnhonaDownloader.py")])
然后输入
setup.py build
如果需要作出安装包需要加上bdist_msi
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 ...
- Python打包成exe,文件太大问题解决办法
Python打包成exe,文件太大问题解决办法 原因 解决办法 具体步骤 情况一:初次打包 情况二:再次打包 原因 由于使用pyinstaller打包.py文件时,会把很多已安装的无关库同时打包进去, ...
- Python打包成exe可执行文件
Python打包成exe可执行文件 安装pyinstaller pyinstaller打包机制 Pyinstaller打包exe 总结命令 可能会碰到的一些常见问题 我们开发的脚本一般都会用到一些第三 ...
- Python打包成exe程序
如何把.py文件打包成.exe可执行程序. 这里选择用PyInstaller 3.0来打包,PyInstaller 3.0下载地址:https://pypi.python.org/pypi/PyIns ...
- python打包成exe,太大了该怎么解决?
这是一个很长的故事,嫌长的直接看最后的结论 事情经过 上周接了个需求,写了个小工具给客户,他要求打包成exe文件,这当然不是什么难事.因为除了写Python的,绝大多数人电脑里都没有Python编译器 ...
- 將Python打包成 exe可执行文件
利用Python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行.本篇將介紹利用套件「PyInstal ...
- py库:把python打包成exe文件(pyinstaller)
http://blog.csdn.net/be_quiet_endeavor/article/details/73929077 用Pyinstaller把Python3.4程序打包成可执行文件exe ...
- python打包成.exe工具py2exe0-----No such file or directory错误
转自:http://justcoding.iteye.com/blog/900993 一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具, ...
随机推荐
- AngularJs定制样式插入到ueditor中的问题总结
总结一下自己给编辑器定制样式的过程中所遇到的问题,主要是编辑器的二次开发接口,以及用angular定制样式,问题不少,终于在**的帮助下,完成了,还剩下老版本和新版本的交互没有弄好,不过不难.下面分别 ...
- ppt动画制作bullets
动画->效果选项->作为一个对象 这样之后,字总是在一段时间后就自己出来,而不是我们点一下再出来,解决方法是对同一段字重复设置,后面那个会默认是点一下,出一张,在把之前的动画删除即可.
- Oracle在dos命令下导出导入
DOS下运行的命令,也可以加参数在SQL/PLUS环境下运行简单例子实现 单表备份(前提库的结构是一样的)导出:开始钮->运行->输入CMD->进入DOS界面EXP 用户名/密码@连 ...
- Java Web系列:Spring Boot 基础
Spring Boot 项目(参考1) 提供了一个类似ASP.NET MVC的默认模板一样的标准样板,直接集成了一系列的组件并使用了默认的配置.使用Spring Boot 不会降低学习成本,甚至增加了 ...
- 用PHP判断客户端是否是手机
<?php function isMobile(){ $useragent = isset($_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_A ...
- css优先级判断
概念 浏览器是通过判断优先级,来决定到底哪些属性值是与元素最相关的,从而应用到该元素上.优先级是由选择器组成的匹配规则决定的. 如何计算? 优先级是根据由每种选择器类型构成的级联字串计算而成的. 它不 ...
- POJ2486 - Apple Tree(树形DP)
题目大意 给定一棵n个结点的树,每个结点上有一定数量的苹果,你可以从结点1开始走k步(从某个结点走到相邻的结点算一步),经过的结点上的苹果都可以吃掉,问你最多能够吃到多少苹果? 题解 蛋疼的问题就是可 ...
- SharePoint用户控件编写的简单介绍
转:http://www.it165.net/design/html/201204/1131.html 我们开发中,通常需要写各种各样的部件来实现我们的展示或者功能,下面就介绍下刚刚接触的QuickP ...
- Vijos1734 NOI2010 海拔 平面图最小割
建立平面图的对偶图,把最小割转化成最短路问题 Dijkstra算法堆优化 (被输入顺序搞WA了好几次T_T) #include <cstdio> #include <cstring& ...
- 利用反射来实现获取成员的指定特性(Attribute)信息
在开发过程中,我们经常需要自定义一些特性,来辅助我们完成对对象或者枚举进行管理.我们需要知道如何获取对象使用的特性信息. 以下举个学习用的例子. 我们自定义一个特性类,这个特性设置在一个数据段内是否执 ...