目前有三种方法可以实现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的更多相关文章

  1. 关于python打包成exe的一点经验之谈

    我经常用python写些脚本什么的,有时候脚本写完以后,每次运行都得在IDE打开在运行,很麻烦,所以经常将python编译成exe.SO...有了一点经验,在这和大家分享一下.      python ...

  2. Python打包成exe,pyc

    D:\mypython\path\ C:\Python27\Scripts\pyinstaller.exe -w mypython.py # Python打包成exe D:\mypython\path ...

  3. Python打包成exe,文件太大问题解决办法

    Python打包成exe,文件太大问题解决办法 原因 解决办法 具体步骤 情况一:初次打包 情况二:再次打包 原因 由于使用pyinstaller打包.py文件时,会把很多已安装的无关库同时打包进去, ...

  4. Python打包成exe可执行文件

    Python打包成exe可执行文件 安装pyinstaller pyinstaller打包机制 Pyinstaller打包exe 总结命令 可能会碰到的一些常见问题 我们开发的脚本一般都会用到一些第三 ...

  5. Python打包成exe程序

    如何把.py文件打包成.exe可执行程序. 这里选择用PyInstaller 3.0来打包,PyInstaller 3.0下载地址:https://pypi.python.org/pypi/PyIns ...

  6. python打包成exe,太大了该怎么解决?

    这是一个很长的故事,嫌长的直接看最后的结论 事情经过 上周接了个需求,写了个小工具给客户,他要求打包成exe文件,这当然不是什么难事.因为除了写Python的,绝大多数人电脑里都没有Python编译器 ...

  7. 將Python打包成 exe可执行文件

    利用Python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行.本篇將介紹利用套件「PyInstal ...

  8. 【Python打包成exe方法】——已解决导入第三方包无法打包的问题

    ​ 前言 在我们写代码的过程中,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安 ...

  9. py库:把python打包成exe文件(pyinstaller)

    http://blog.csdn.net/be_quiet_endeavor/article/details/73929077 用Pyinstaller把Python3.4程序打包成可执行文件exe ...

随机推荐

  1. Objective-c开发教程--MRC和ARC混编

    iOS5.0以后就开始可以使用ARC来代替之前的MRC. 1.ARC中使用MRC的类.方法如下: 在targets的build phases选项下Compile Sources下选择要不使用arc编译 ...

  2. 记录一个php强制下载文件函数

    整理个经常用的强制下载文件的函数,之前就说把一些常用的东西整理出来结果老是没时间,最近陆续把这些东西整理下. public function download() { $id = $this-> ...

  3. JAVA关键字transient

    转载自http://www.cnblogs.com/liuling/archive/2013/05/05/transient.html 1.transient关键字只能修饰变量,而不能修饰方法和类.注 ...

  4. spring 源码之 ioc 容器的初始化和注入简图

    IoC最核心就是两个过程:IoC容器初始化和IoC依赖注入,下面通过简单的图示来表述其中的关键过程:

  5. Invalid signature file digest for Manifest main attributes

    Solving a Spark error: Invalid signature file digest for Manifest main attributes When using spark-s ...

  6. HTML5 canvas准备知识

    利用canvas来进行画图工作.因此,我们有必要进行一些画图方面的术语说明. 一.画布 在日常生活中,如果我们要画画,可以找纸.板.画布等等工具.而在网页元素中,我们只需要定义一个标签即可. < ...

  7. HTML5 标签元素的一些注意事项

    不运行写结束标记的元素(但标签元素): area.base.br.col.command.embed.hr.img.input.keygen.link.meta.param.source.track. ...

  8. python-摩斯码转换

    意义:简单实现摩斯码的破译和生成 代码: #-*- coding: UTF-8 -*- ' __date__ = '2016/2/2' import pprint import re chars = ...

  9. windows如何安装和配置mongodb

    https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-windows/

  10. OpenCV学习 1:OpenCV安装与第一个图像显示程序

    原创作品,转载请注明出处 为了提升逼格,决定学下OpenCV,想想如果可以做人脸识别,定点降落,让飞机跟着自己飞..想想都有点小激动.这只是想的,能不能学会还不知道..哈..      1:先下载:h ...