精华内容
下载资源
问答
  • 如何Python程序打包应用程序!

    本次我们需要使用pyinstaller工具,请使用pip3 install pyinstaller来安装。
    还需要easygui模块,使用同样方法安装。

    我们安装成功后,制作一个简单的小游戏:

    from random import randint
    from easygui import msgbox,integerbox
    
    secret = randint(1,100)
    title = '猜数字'
    tries = 0
    msgbox('现在开始猜数字,数字的范围是1-100!',title)
    temp = integerbox("请输入一个数字:",title)
    guess = int(temp)
    
    if guess == secret:   
        msgbox("恭喜你一次就猜对了!",title)   
    else:
        if guess < secret:  
            msgbox("猜小了!",title)  
        else:
            msgbox("猜大了!",title) 
    
    while guess != secret and tries < 15:
    	temp = integerbox("猜错了,重新猜猜吧:",title)
    	guess = int(temp)
    	tries += 1
    	if guess == secret:
    		msgbox("恭喜您,猜对啦!",title)
    	else:
    		if guess < secret:
    			msgbox("猜小了!",title)
    		else:
    			msgbox('猜大了!',title)
    	while tries >=5:
    		msgbox("没有机会了!",title)
    		break
    msgbox("哈哈,正确数字是" + str(secret) + '!',title)
    

    这是一个猜数游戏。我们把它放在一个文件夹下,命名为guess.py。可以先看一下实现效果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ……
    效果就先不说了。打开命令提示符,切换到当前目录:
    在这里插入图片描述
    输入以下代码:

    pyinstaller guess.py -F -w
    

    在这里插入图片描述
    然后点回车键,发生了以下的事情:
    在这里插入图片描述
    在这里插入图片描述
    当看到语句Building EXE from EXE-00.toc completed successfully.时,那么我们就成功了!看一下:
    在这里插入图片描述
    我们的文件夹里多了很多文件,可执行文件在dist文件夹里:
    在这里插入图片描述
    效果和运行程序一模一样!

    展开全文
  • 如何打包python应用(一)

    万次阅读 2016-12-25 20:45:08
    对于python编程之后,除了在Python IDE中运行之外,可以将python的程序打包python应用,直接在PC环境上运行。对于python打包目前有很多第三方库文件直接使用。在这里主要介绍一下cx freeze和pyinstaller两种。

    对于python编程之后,除了在Python IDE中运行之外,可以将python的程序打包为python应用,直接在PC环境上运行。对于python打包目前有很多第三方库文件直接使用。在这里主要介绍一下cx freeze和pyinstaller两种

    cx-freeze:

    1. 安装步骤:
    step1: 安装,pip install cx_freeze
    step2:在cmd中,切换到Python安装目录的Scripts目录,比如我的为c:\Python32\Scripts 运行cxfreeze-postinstall
    python cxfreeze-postinstall
    step3:检测是否安装成功,cxfreeze -h

    cxfreeze-h

    2. cx-freeze打包:
    打包命令:python setup.py build

    其中打包的脚本命令如下:

    python setup.py build
    
    setup.py
    
    import sys
    from cx_Freeze import setup, Executable
    #打包所需要的第三库
    build_exe_options = {"packages": ["sys"], "includes ": ['PyQt5.QtGui','xlsxwriter','xlrd','PyQt5.QtWidgets','PyQt5.QtCore','PyQt5.QtPrintSupport']}
    
    base = None
    if sys.platform == 'win32':
        base = 'Win32GUI'
    
    options = {
        'build_exe': {
            'includes': 'atexit'
        }
    }
    
    executables = [
        Executable('mainPage.py', base=base),
        Executable('creatDetailTable.py'),
        Executable('creatTable.py'),
        Executable('databaseOpetation.py'),
        Executable('dataManager.py'),
        Executable('fileReader.py')
    ]
    
    setup(name='education',
          version='0.1',
          description='education software',
          options=options,
          executables=executables
          )
    

    3. 打包脚本说明:
    build_exe_options 打包所需的第三方库
    executables 可执行的文件
    setup 可执行文件相关信息

    4. 打包过程:
    python源文件,路径C:\Python33\Lib\site-packages\cx_Freeze\samples\eduaction
    包含六个源文件mainPage.py,creatDetailTable.py,creatTable.py,databaseOpetation.py,dataManager.py,dataManager.py
    这里写图片描述

    打包library.zip,其中所需的dll库和第三方库文件:
    这里写图片描述

    将所需文件拷贝到打包的exe文件中
    这里写图片描述

    最终的打包结果:
    这里写图片描述
    在打包的结果中可以看见,cx-freeze将每个python文件都打包为exe文件,并且将所需的dll和pyd资源文件都打包到对应的目录中。

    打包生成的文件结构:

    文件目录:
    │  creatDetailTable.py
    │  creatTable.py
    │  databaseOpetation.py
    │  dataManager.py
    │  fileReader.py
    │  mainPage.py
    │  setup.py
    │ 
    └─build
        └─exe.win32-3.3
            │  creatDetailTable.exe
            │  creatTable.exe
            │  databaseOpetation.exe
            │  dataManager.exe
            │  fileReader.exe
            │  icudt49.dll
            │  icuin49.dll
            │  icuuc49.dll
            │  libGLESv2.dll
            │  library.zip
            │  mainPage.exe
            │  pyexpat.pyd
            │  PyQt5.QtCore.pyd
            │  PyQt5.QtGui.pyd
            │  PyQt5.QtPrintSupport.pyd
            │  PyQt5.QtWidgets.pyd
            │  python33.dll
            │  pywintypes33.dll
            │  Qt5Core.dll
            │  Qt5Gui.dll
            │  Qt5PrintSupport.dll
            │  Qt5Widgets.dll
            │  select.pyd
            │  sip.pyd
            │  sqlite3.dll
            │  unicodedata.pyd
            │  win32api.pyd
            │  _bz2.pyd
            │  _decimal.pyd
            │  _elementtree.pyd
            │  _hashlib.pyd
            │  _lzma.pyd
            │  _socket.pyd
            │  _sqlite3.pyd
            │  _ssl.pyd
            │ 
            ├─imageformats
            │      qgif.dll
            │      qico.dll
            │      qjpeg.dll
            │      qmng.dll
            │      qsvg.dll
            │      qtga.dll
            │      qtiff.dll
            │      qwbmp.dll
            │     
            └─platforms
                    qminimal.dll
                    qoffscreen.dll
                    qwindows.dll
    

    5. 程序运行:
    由于mainPage.exe为程序的入口函数,因此运行mainPage.exe可以正常执行。由于在win7上编译生成的,需要在其他平台上已经运行检测。

    文件夹中已经添加了必要的dll,但在其他机子上运行程序失败,出现了下面的情况,只能在本机运行,不能在其他机器上进行运行在xp的平台上运行,发现失败如下:
    这里写图片描述

    使用Process Explorer查看程序所使用的dll
    Process Explorer是一个很有用的工具。由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(dll和内核模式驱动程序)加载、系统引导时记录所有操作等。(来自百度百科的解释),既然可以监视dll,那么在发布程序前,可以用Qt Creator运行将要发布的程序,在Process Explorer中查看exe使用的dll,一般来说,程序运行失败很可能就是少了对应的dll文件。

    如下是本例程序所需要的dll列表:
    这里写图片描述

    将所需的dll文件全部拷贝到exe文件同级目录中,在xp系统上可以正常运行。


    注意事项:

    1、cx-freeze不能将所需文件打包为单个的可执行文件,需要进行二次的打包;
    2、跨平台的时候可能存在缺少dll文件的可能性,因此需要在release的时候将所有的dll文件都打包到一起;

    参考资源:

    http://cx-freeze.readthedocs.io/en/latest/overview.html 官方网站

    展开全文
  • 如何打包python应用(二)

    千次阅读 2016-12-26 13:10:30
    对于python编程之后,除了在Python IDE中运行之外,可以将python的程序打包python应用,直接在PC环境上运行。对于python打包目前有很多第三方库文件直接使用。在这里主要介绍一下cx freeze和pyinstaller两种

    对于python编程之后,除了在Python IDE中运行之外,可以将python的程序打包为python应用,直接在PC环境上运行。对于python打包目前有很多第三方库文件直接使用。在这里主要介绍一下cx freeze和pyinstaller两种

    关于cxfreeze使用如何打包python应用(一)

    pyinstaller:

    1. 安装:
    方法一:直接使用pip
    pip install pyinstaller

    方法二:下载源码安装
    在github中打包下载,解压到电脑中,运行命令行进入此目录。
    //进入子目录 bootloader
    cd bootloader
    //build the bootloader 运行
    python ./waf configure build install
    //重新进入根目录
    cd ..
    //安装pyinstaller
    python setup.py install

    2. pyinstaller打包:
    python源文件,路径C:\Python33\Lib\site-packages\cx_Freeze\samples\eduactionData

    包含六个源文件(自己编写的源程序代码)mainPage.py,creatDetailTable.py,creatTable.py,databaseOpetation.py,dataManager.py,dataManager.py

    方法一:直接使用pyinstaller命令直接打包:
    pyinstaller -F -w mainPage.py creatDetailTable.py creatTable.py databaseOpetation.py dataManager.py dataManager.py

    方法二:使用脚本命令打包:
    pyinstaller makeApplication.spec
    其中makeApplication.spec脚本内容如下:

    # -*- mode: python -*-
    
    block_cipher = None
    
    
    a = Analysis(['creatDetailTable.py', 'creatTable.py', 'databaseOpetation.py', 'dataManager.py',  'fileReader.py', 'fileSelectedWindow.py', 'mainPage.py', ],
                 pathex=['C:\\Python33\\Lib\\site-packages\\cx_Freeze\\samples\\education'],
                 binaries=None,
                 datas=None,
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              name='education',
              debug=False,
              strip=False,
              upx=True,
              console=False )
    

    3. 打包脚本说明:
    方法一说明:
    -F :将可执行文件和所需dll打包成一个可执行文件,否则exe文件会和其他dll文件在同一路径中。
    -w :打包为window平台文件
    方法二说明:
    Analysis: 需要打包的源文件
    pathex: 源文件路径
    EXE :可执行文件相关信息

    4. 打包过程:
    打包结果:

    文件目录:
    │  creatDetailTable.py
    │  creatTable.py
    │  databaseOpetation.py
    │  dataManager.py
    │  fileReader.py
    │  fileSelectedWindow.py
    │  mainPage.py
    │  makeApplication.spec
    │  
    ├─build
    │  └─makeApplication
    │          base_library.zip
    │          makeApplication.exe.manifest
    │          out00-Analysis.toc
    │          out00-EXE.toc
    │          out00-PKG.pkg
    │          out00-PKG.toc
    │          out00-PYZ.pyz
    │          out00-PYZ.toc
    │          warnmakeApplication.txt
    │          
    ├─dist
    │      education.exe
    │      
    └─__pycache__
            creatDetailTable.cpython-33.pyc
            creatTable.cpython-33.pyc
            databaseOpetation.cpython-33.pyc
            dataManager.cpython-33.pyc
            fileReader.cpython-33.pyc
            fileSelectedWindow.cpython-33.pyc
            mainPage.cpython-33.pyc
    

    dist/ 目录中education.exe为打包的可执行文件
    pycache/ 目录为打包过程生成文件
    build/ 目录也为打包过程生成文件

    5. 程序运行:
    在win7系统上打包生成education.exe,在xp系统上也能正常运行

    参考资源:

    https://pyinstaller.readthedocs.io/en/stable/usage.html 官方网站

    展开全文
  • Python应用打包成镜像

    2020-10-26 23:07:07
    本文教你如何将一个 Python 应用容器化,容器化后,你的应用可以极其方便的迁移至其他具有 Docker 的服务器中,即使 Docker 服务器不联网,也只需将一个 Docker 镜像拷贝至内网即可完成部署。假如有一个 Python 的 ...

    将python制作成容器镜像

    能不能一次部署,处处运行?其实这个问题已经有点过时了,别问,问就是 docker,如果你了解过 docker,你就知道,以容器的形式来发布你的应用程序,已经变得非常流行。
    本文教你如何将一个 Python 应用容器化,容器化后,你的应用可以极其方便的迁移至其他具有 Docker 的服务器中,即使 Docker 服务器不联网,也只需将一个 Docker 镜像拷贝至内网即可完成部署。假如有一个 Python 的 web 应用 index.py ,这里是 falsk 写的 Hello world:

        from flask import Flask
        app = Flask(__name__)
        @app.route("/")
        def hello():
            return "Hello World!"
        if __name__ == "__main__":
            app.run(host="0.0.0.0", port=int("5000"), debug=True)
    

    运行 python index.py 后,在浏览器上访问 http://127.0.0.1:5000,会看到浏览器上显示了 ‘Hello World!’ 说明程序没有问题。如果我们把这个文件发给别人,那么他需要做以下 3 步才能启动这个 web 应用。

    安装 Python 解释器
    安装 flask 库
    执行 python index.py
    真实情况下,步骤 2 可能会有很多依赖,这里我们将所有的依赖库都放在 requirements.txt 文件中:

        Flask==1.1.2
    

    然后在应用程序的根目录(这里是 index.py 所在的目录)中创建一个名为 Dockerfile 的文本文件,然后粘贴以下代码。

    FROM python:alpine3.8
    COPY . /app
    WORKDIR /app
    RUN pip install -r requirements.txt
    EXPOSE 5000
    CMD python ./index.py
    

    请注意,FROM 指令指向 python:alpine3.7。这是在告诉 Docker 容器要使用什么基本映像,并隐式选择要使用的 Python 版本,在本例中为 3.8。Docker Hub 具有几乎所有 Python 版本的基本映像。该示例使用的是安装在 Alpine Linux(极简Linux发行版)上的Python,该 Python 发行版有助于使 Docker 的映像较小。除非有充分的理由使用 Debian Jessie 这样的基本图像,否则最好选择Alpine。

    还要注意的是 RUN 指令,该指令调用 pip 从 requirements.txt 文件安装依赖项。

    Dockerfile 中的其余指令非常简单。在 CMD 指令告诉容器来执行启动该应用程序是什么。在这种情况下,它告诉 Python 运行 index.py。该 COPY 指令简单地移动应用到容器镜像,WORKDIR 设置工作目录,EXPOSE 绑定 Flask 使用的端口。

    要构建映像,在 Dockerfile 目录下,终端运行 docker build 命令。

    docker build --tag somenzz-app ./
    

    等待其下载基本镜像并构建完成,会得到一个 somenzz-app 的镜像:

    $ docker images | grep somenzz
    somenzz-app                                         latest                      b7e2359056bb        3 hours ago         89.1MB
    somenzz/my-kali                                     latest              975cbe3a4619        2 weeks ago         1.83GB
    

    可以看到此镜像只有 89.1MB 的大小。接下来就像其他镜像已有可以使用了:

    $ docker run --name python-app -p 5000:5000 somenzz-app
     * Serving Flask app "index" (lazy loading)
     * Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
     * Debug mode: on
     * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
     * Restarting with stat
     * Debugger is active!
     * Debugger PIN: 201-219-912
    172.17.0.1 - - [14/Oct/2020 22:32:05] "GET / HTTP/1.1" 200 -
    

    此时容器已经成功启动,本机的 5000 端口会映射至容器的 5000 端口,因此,访问 127.0.0.0:5000 就相当于访问容器的 5000 端口。

    如果要后台运行容器,可以加入 -d 参数:

    $ docker run -d  --name python-app -p 5000:5000 somenzz-app
     259d09fbbf77a6fd680cd7527600d055cb76fe3d6792063846103b47360210f9
    $ docker container list | grep somenzz-app
    259d09fbbf77        somenzz-app                                             "/bin/sh -c 'python …"   20 minutes ago      Up 20 minutes       0.0.0.0:5000->5000/tcp                           python-app
    

    结合前文手摸手,带你入门docker中的步骤 7 :发布镜像,你可以将容器发布到网络上供他人使用。

    如果你不熟悉 Dockerfile,制作并发布 docker 镜像还有一个更简单的方法,那就是下载一个镜像,启动,登陆到容器内部进行修改,安装依赖,然后保存为新镜像,最后发布,当然效率是比较低的,有时间最好还是学习下 Dockerfile, 官方教程如下:
    https://docs.docker.com/engine/reference/builder/

    自然,本文只是一个简单的 HelloWorld web 应用。更复杂的场景将需要更多地关注细节,但是大多数 Python 应用程序的容器化流程都是相同的,希望本文对你有所帮助。

    展开全文
  • 使python应用程序可安装在基于Debian的操作系统(例如Debian或Elementary OS )上的一种方法是使用dh_virtualenv工具。 它构建了一个.deb软件包,该软件包将Python虚拟环境包装在应用程序周围,并在安装时进行部署。...
  • 本文给大家分享的是如何使用python打包出32位和64位的应用程序的方法,非常的简单实用,有需要的小伙伴可以参考下
  • 了解如何使用 dh_virtualenv 来让你的 Python 应用可作为 .deb 包安装。https://linux.cn/article-12143-1.html作者:Mosh...
  • 要想在没有安装Python集成环境的电脑上运行开发的Python程序,必须把Python文件打包成.exe格式的可执行文件 1、需要依赖文件才能运行,称为ondir方式 pyinstaller 应用程序 例如 pyinstaller Hello.py 2、单独的...
  • Python 程序都是脚本的方式,一般是在解析器里运行,如果要发布出去,需要提前安装...PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运...
  • Python模块、扩展和应用程序可以按以下几种形式进行打包和发布:python setup.py获取帮助的方式python setup.py --helppython setup.py --help-commands 所有可以使用的命令,如build,installpython setup.py ...
  • MacOS下打包Python应用

    2019-03-19 11:07:00
    在MacOS下开发的Python应用,不是Web Application,开发好以后,如何给用户使用呢?用户的操作系统也是MacOS 使用py2app打包 一、软件环境 操作系统:MacOS 电脑上默认安装了Python2.7,另外又单独安装了...
  • 1、在setup.py中设置include_package_data=True 格式参照: from setuptools import setup, find_packages setup( name='your_project_name', version='0.1', description='A description.', ...
  • 在使用anaconda+vscode写完python代码之后,相信很多人都会这样一个疑问:我们如何将这些python程序提供给普通用户使用呢?...其中,pyinstaller是目前应用最多的python打包工具,因此我选择了p...
  • 关于如何Python程序打包成exe应用软件, 在网上看了很多大佬的教程, 但是在实践时总是出现这些那些的错误, 经过种种曲折坎坷之后, 终于弄懂了这一方法。 我用的是Anaconda, 可以直接打开Anaconda Prompt, ...
  • 学会如何Python打包 生成EXE文件 如何安装并使用PYINSTALLER库来生成EXE包
  • python打包文件egg

    千次阅读 2014-08-27 17:46:51
    经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到easy_install命令。...egg包是目前最流行的python应用打包部署方式。如何制作和安装egg包?下面我就简单的分析了一下。 1.1 ...
  • Docker是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建、打包为一个轻量级容器,并在任何地方运行。Docker 会在软件容器中自动部署应用程序。 Django 是一个用 Python 编写的 Web ...
  • 下载python和pyqt5版本对应上,我的python3.5.3和pyqt5:地址:https://pan.baidu.com/s/1qZk5tFY  v760先安装python,后装pyqt5:参考这教程:https://jingyan.baidu.com/article/9113f81b6fd5cd2b3214c7c2.html打包:...
  • 使用pyinstaller可以轻松的实现将源码打包应用。pyinstaller的文档地址 安装pyinstaller 这里只介绍windows系统下的安装。其他系统的安装请参考文档 熟悉pip安装的话十分简单win+r输入cmd进入命令行窗口,输入一下...
  • 最近写了一个小小的程序,需要进行封装exe,为了简单,就直接用了pyinstaller这个模块,对于python3.6版本的童鞋来说,简直方便的不要。下面就给大家介绍一下如何用pyinstaller去封装程序为exe程序。 首先,需要安装...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 234
精华内容 93
关键字:

python如何打包应用

python 订阅