python程序打包,来源于知乎(已验证)

百度经验方法:https://jingyan.baidu.com/article/22a299b5ec76869e19376ad9.html

pandas导包问题解决方案:

修改原有的打包代码为:

pyinstaller -F -w -i xxx.ico yyy.py --hidden-import=pandas._libs.tslibs.timedeltas
  • 1
  • -F 指只生成一个exe文件,不生成其他dll文件
  • -w 不弹出命令行窗口
  • -i 设定程序图标 ,其后面的ico文件就是程序图标
  • yyy.py 就是要打包的程序
  • –hidden-import=pandas._libs.tslibs.timedeltas 隐藏相关模块的引用

知乎:

作者:Jerry Jho
链接:https://www.zhihu.com/question/29738031/answer/45431132
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • Windows 平台
  • Python 2.7.9(Python 2最新版)

py2exe 是最好的选择。

1. 安装py2exe

可直接到这里下载

py2exe - Browse /py2exe/0.6.9 at SourceForge.net

应选择Python对应的版本。例如我们的Python是32位的2.7.9,则下载

py2exe-0.6.9.win32-py2.7.exe

如果你安装的Python是64位的,则下载

py2exe-0.6.9.win64-py2.7.amd64.exe

查看Python是32位还是64位,只需到命令提示符下运行:

python -c "import sys;print ‘%x‘ % sys.maxint"

32位的Python会输出7fffffff,64位的Python会输出7fffffffffffffff

注意我们关注的是Python的版本而不是Windows的版本。

一般说来,处于兼容性的考虑,应该安装32位的Python,否则编译好的程序将无法在32位的Windows下运行。

2 准备你的Python程序

需要确保你的Python程序能够正常运行。

例如我们的程序叫hello.py,里面的内容就一句话:

print ‘Hello,Python‘

3 准备setup.py

你需要告诉py2exe转换时所需要的设置。

在同一个目录下新建一个文件,比如叫build.py,写入以下代码:

from distutils.core import setup
import py2exe

setup( console=[‘hello.py‘],
       zipfile = None,
       options = {‘py2exe‘ : {
                     "bundle_files": 1,
                     "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"]
                     }
                  }
 )

build.py 包含了许多设置。包括你自己的Python程序的文件名,是否创建独立的应用程序等。如果想把这个build.py用到其他Python程序,只需要修改console=[‘hello.py‘],中的‘hello.py‘即可。

4 生成可执行文件

在命令行下运行:

python build.py py2exe

屏幕会输出大量的信息。如果工作正常,会以以下信息结束:

当前目录下会产生两个目录,dist和build。目录build含有转换时所需要的临时文件;dist含有最终转换的结果。

可以把dist目录下的hello.exe拷给别人了,它不需要对方的电脑上安装Python。

5 一点儿背景知识

仅仅是输出‘Hello Python‘,最终得到的hello.exe却有5M之巨。py2exe 的原理,简单的说就是把一个迷你的Python和你的程序捆绑在了一起。在其他计算机上运行时,就相当于先快速‘安装’了一个Python,只不过对方感觉不到而已。

===================== 更新 =====================

6 关于Python3

py2exe 项目对于Python2和Python3发布了互不兼容的安装包。

对于Python3,通过easy_install或者pip在线安装py2exe即可,或者到下面的网址下载安装包。

https://pypi.python.org/pypi/py2exe/

对于Python3的py2exe,除了与Python2相同的build.py的方式,还有一种简单直接的方法,适用于不需要额外配置的情况。例如你的Python程序叫做hello.py,在命令行输入

<Python3-Install-Path>\Scripts\build_exe hello.py -b 0 -c

其中,<Python3-Install-Path>指你Python3的安装目录,选项-b 0含义为“创建单一可执行文件”,-c的含义是“对可执行文件进行压缩”

此时会在dist/目录下出现hello.exe。是不是很方便?

===================== 更新 =====================

6 关于GUI应用程序的编译封装

6.1 wxPython
不需要额外的处理。
如果不愿意弹出console窗口的话,可在build.py里将“console=[‘hello.py‘]”改成“windows=[‘hello.py‘]”,即

from distutils.core import setup
import py2exe

setup( windows=[‘hello.py‘],
       zipfile = None,
       options = {‘py2exe‘ : {
                     "bundle_files": 1,
                     "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"]
                     }
                  }
 )

6.2 PyQt4
build.py 需要增加sip。另外,鉴于文件较大,最好进行压缩。示例build.py:

from distutils.core import setup
import py2exe

setup( windows=[‘hello.py‘],
       zipfile = None,
       options = {‘py2exe‘ : {
                     "bundle_files": 1,
                     "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"],
                     "includes": ["sip"],
                     "compressed": 1,
                     "optimize": 2,
                     }
                  }
 )

鉴于py2exe是使用扫描import的方法自动决定打包的文件,因此,下面的代码,虽然以脚本方式可以运行,但是编译后会产生QtCore无法找到的错误:

#!/usr/bin/python

from PyQt4.QtGui import *

if __name__ == ‘__main__‘:
    app = QApplication([])
    w = QWidget()
    w.show()
    app.exec_()

正确的做法是按照Qt本身的依赖,写完所有所依赖的module:

#!/usr/bin/python

from PyQt4.QtCore import *
from PyQt4.QtGui import *

if __name__ == ‘__main__‘:
    app = QApplication([])
    w = QWidget()
    w.show()
    app.exec_()

原文地址:https://www.cnblogs.com/alexander9864/p/9197017.html

时间: 2024-11-09 11:07:32

python程序打包,来源于知乎(已验证)的相关文章

python程序打包成.exe

1. 安装py2exe 2. 将打包文件与被打包文件放在同一个文件夹下. 例如,你需要将test.py打包成exe,那么test.py就是被打包文件,那么打包文件呢,写一个setup.py文件,内容如下: # setup.pyfrom distutils.core import setupimport py2exesetup(console=["test.py"]) 放在同一个目录的目的是因为在console = ["test.py"]时,不用考虑路径问题,注意,你

python程序打包成exe文件

今天试了试将python程序打包成windows的可执行文件(exe格式) 使用pyinstaller 1.安装 pip install pyinstaller 官网地址:http://www.pyinstaller.org/ 2.打包 打包方式a: pyinstaller 路径+文件 ps:适用执行完程序就可以关闭的python程序 打包方式b: pyinstaller -F 路径+文件 ps:适用需要一直执行的程序,如客户端或服务器形式,不会关闭掉程序,(带有小黑框和调试信息) 打包方式c:

将Python程序打包为exe方法

将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windows中,pyinstaller依赖PyWin32,pypiwin32(Linux,mac忽略) 如果在安装pyinstaller时使用的是pip或者easy_install会自动pypwin32,只需要手动安装Pywin32即可 安装命令:pip install pywin32 2,使用pip安装p

将python程序打包成exe( pyintaller) 的用法

当我们用python写好一个脚本给没安装python解释器的windows用户使用时,那将无法执行脚本! 而 pyinstaller 就是一个帮助我们将python程序打包成 exe 可执行文件给没安装python解释器的用户使用的神器! 要使用 pyinstaller ,我们首先得安装它: 使用 pip 安装: pip install pyinstaller GitHub源码地址 安装完成后,我们先来检查下是否成功安装! pyinstaller -v 若显示出版本号,则证明我们已经成功安装了!

python程序打包!!!!

项目背景: 我们写好了python程序,怎么像我们下载一些网站上的程序包一样,相信大家对这个一定很感兴趣!! 实验环境: 虚拟机VMware Workstation 12 player 服务器:centos6.5的系统  ip:192.168.0.25 Python 2.6.6 SecureCRT ssh远程连接软件 distuils模块 实验过程: 一.创建工作目录,创建python程序. 二.创建安装文件 三.创建软件依赖的库目录 四.源代码发布 w五.看一下我们创建好的程序源码 可以看到我

Python程序猿必知会的Django用户模块扩展方法

本文和大家分享的主要是Django用户模块的扩展相关知识,希望可以帮助大家更好的学习Django ,一起来看看吧. Django内置的用户验证系统十分强大.大多数情况下,它可以拿来就用,能帮我们省去很多开发.测试的工作.它能满足大多数的使用情况并且很安全.但是有时候,为满足我们的网络应用需求,需要对它进行一些微调. 一般来说,我们希望更多地存储与用户有关的数据.如果你的网络应用具有社交属性,你可能希望存储用户简介.地理位置以及其他相关的东西. 在此教程里,我将简单呈现扩展Django用户模型的方

使用py2exe将python程序打包成exe程序

近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1. 下载py2exe 官网:http://www.py2exe.org/index.cgi/FrontPage 我使用的是py2exe-0.6.9.win32-py2.7.exe 直接安装即可. 安装完成以后,python的Lib/site-packages目录下会多出py2exe目录和egg-in

python程序打包成.exe----pyinstaller工具

1. 环境 windows 2. 安装 准备文件:PyWin32 or pypiwin32 运行如下安装命令:  pip install pyinstaller 3. 打包 把.py或.pyw文件拷贝到pyinstaller所在目录 执行命令: pyinstaller -F xxx.py ,会把生成的文件自动放到dist目录下,文件名默认为xxx.exe. 常用参数说明: -F:把所有文件打包成一个.exe. -D:把所有文件打包成一个目录,里面包含可执行文件和所需库等其他文件. -n NAME

python程序打包成exe(使用pyinstaller)

pyinstaller下载地址:https://github.com/pyinstaller/pyinstaller/ (这个文件能够自动安装依赖项,其他版本的貌似还要自己安装依赖项) 下载之后解压到某个文件夹内,如图1所示为解压后的文件 图1-解压后pyinstaller文件夹 解压完成后会在文件夹内看到setup.py文件 从cmd进入文件目录,> install setup.py 会提示加载……然后自动联网的情况下会自动下载依赖文件pywin32以及pywin32的依赖文件…… 最后提示安