您的位置:新葡亰496net > 奥门新萄京娱乐场 > 主要教学pyinstaller的用法,学员肖杰

主要教学pyinstaller的用法,学员肖杰

发布时间:2019-07-05 12:55编辑:奥门新萄京娱乐场浏览(177)

    1.应用场景

    一.pyinstaller简介

    pyinstaller将Python脚本打包成可实行程序,使在尚未Python情形的机器上运营

    流行版是pyinstaller 3.1.1。援助python2.7和python3.3 。
    可运行在Windows,Mac和Linux操作系统下。
    但它不是跨编写翻译的,也便是说在Windows下用PyInstaller生成的exe只好运转在Windows下,在Linux下转移的只可以运转在Linux下。

    pyinstaller 库的施用

    在大家做到四个Python项目或二个顺序时,希望将Python的py文件打包成在Windows系统下直接能够运作的exe程序。这里大家介绍一种简易常用的不二等秘书籍,pyinstaller模块

    运用PyInstaller将Python程序文件调换为可实践程序文件,

    Windows下利用PyInstall将py文件转换到exe可试行文件 百川归海写完的py文件,想做成exe文件,最起首采用用py2exe,结果生成的exe境遇五个难点,

    1. py程序里print 的信息,cmd中实践tool后并不曾出示在显示器上;
      2. 调用dll接口,施行py文件时是阻塞等待的,结果cmd中实践exe时,tool异常快先回去了,接口还在运维,很新奇
      一代找不到消除的方法,无可奈何弃用了,在互连网找了pyinstall,试了弹指间,感到效果更有力些。。。
      安装PyInstaller以前需确认首先安装了pywin32
      下载地址:
       
      一、PyInstaller安装
      1.下载地址:
      2.流行版本:PyInstaller 2.0
      3.直接“解压缩”之后就可以使用,解压到您想让他在的门径就能够
       
      二、PyInstaller配置 1.先行写好py程序
      2.在命令行实践:

      Python Makespec.py --console --onefile NotePadnotepad.py

    报错:

    Configfile is missing or unreadable. Please run Configure.py before building
    

    3.在命令行试行:

    Configure.py
    

    报错:

    Python 2.6 on Windows support needs pywin32,Please install http://sourceforge.net/projects/pywin32/

    4.设置新型版本的 pywin32-217.win32-py2.7.exe,下载地址:
     
    三、PyInstaller使用 PyInstaller的施用相对简便易行,cmd下踏入解压出来的目录,施行如下命令:

    python pyinstaller.py [opts] yourprogram.py
    

    四、首要选用包含: -F, -onefile 打包成一个exe文件
    -D, -onedir 创造二个索引,包蕴exe文件,但会借助相当多文件(暗许选项)
    -c, -console, -nowindowed 使用调节台,无分界面(暗许)
    -w, -windowed, -noconsole 使用窗口,无调节台

    五、注意事项 在改换以前要保险py程序可以符合规律通过;
    要是调换进度中冒出什么样错误,用寻觅引擎寻找消除一下。


    Linux下安装pyinstaller用于将py文件打包生成五个可实践文件
    **
    一、安装使用流程**

    1. 率先给系统装个easy_install, 假使装了的可以跳过那步
      到pypi官方网址 去download最新版本

    2. 官方网址络下载pyinstaller,当前的风靡版本是2.1
      (1) 网址

    3.解包进去源码目录
    (1)

    tar -zxvf pyinstaller_2.1.tar.gz
    

    (2)

    cd pyinstaller-2.1
    

    运行

    python setup.py install
    
    1. 拷贝py文件
      将需打包的py文件如test.py 拷贝到当前目录

    2. 调换可实施文件
      cd到pyinstaller目录, 执行

      python pyinstaller.py test.py

    二、或然遭遇的标题

    1. 用户权限
      直接在root用户下运作pyinstaller会报错 “cannot run pyinstaller as user root"...
      所以需新扩大别的贰个用户,并给用户对pyinstaller所在的目录及具备父目录增添读写权限,防止运营后报‘mkdir' permission denied...

    2. 新葡亰496net,找不到python lib动态库
      su切换来新添用户后,
      pyinstaller报错找不到python动态库

      raise IOError("Python library not found!") IOError: Python library not

    施行python --version查看当前版本,并查找/usr/local/lib 下有未有对应版本的libpython*.*.so文件,
    若果有则跳过那步,若无则须求重新安装python,在python安装配置中势须要抬高--enable-shared参数就足以转换对应动态链接库,如:

    #./configure --enable-shared --prefix=/usr/local
    #make
    #make install
    

    自家情形中更新过python版本,导致/usr/lib下不是新型版本的库文件,要求将新本子拷贝到对应的/usr/lib目录下,注意有七个公文:

    #cp libpython*.so /usr/lib/
    #ln -s /usr/lib/libpython*.so.1.0 /usr/lib/libpython*.so
    

    Windows下行使PyInstall将py文件转变到exe可实施文件 好不轻便写完的py文件,想做成exe文...

    1.1 旧事背景

    主要教学pyinstaller的用法,学员肖杰。自身要好用python写了三个小程序发给其余同事用,给他的正是三个.py文件,不过她以为比较辛劳,还要设置情况,他问小编有未有简短一点的章程,小编给一个exe文件,他就绝不安装情况就能够运作我的次第,作者心头在想那样麻烦,还要自个儿跟你打包改成exe,不过无法,何人叫是好恋人了,作者就答应他了。

    二.pyinstaller在windows下的设置

    选取命令pip install pyinstaller就能够
    在windows下,pyinstaller需求PyWin32的帮衬。当用pip安装pyinstaller时未找到PyWin32,会自动安装pypiwin32

    新葡亰496net 1

    新葡亰496net 2

    并发Successfully installed pyinstaller-3.1.1 pypiwin32-219即表示安装成功

    PyInstaller是一个极其得力的第三方库,它能够在Windows、Linux、Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Python 程序能够在未有安装 Python 的遭逢中运营,也能够看做一个独门文件方便传递和管制。PyInstaller 需求在命令行(调整台)下用pip 工具安装,如下:

    1. 直接pip安装

    1.2 寻觅素材

    在写c#的时候,面向nuget编制程序(什么人叫四渣渣程序猿了);在学习python从前就在此之前有大多零件(快乐的飞起),初阶在github和google上搜索能源,最后开掘以下多少个东西 相关来源

    • PyInstaller:将 Python 程序转变来独立的奉行文书(跨平台)。官网
    • dh-virtualenv:创设并将 virtualenv 设想景况作为二个 Debian 包来发表。官网
    • Nuitka:将脚本、模块、包编写翻译成可实践文件或扩张模块。官网
    • py2app:将 Python 脚本变为单独软件包(Mac OS X)。官网
    • py2exe:将 Python 脚本变为单独软件包(Windows)。官网
    • pynsist:叁个用来创建 Windows 安装程序的工具,能够在安装程序中封装 Python 自己。官网

    三.打包

    装进的app里并不含有其余源码,但将脚本的.pyc文件打包了。

    主导语法:
    pyinstaller options myscript.py
    常用的可选参数如下:
    --onefile 将结果打包成三个可实践文件
    --onedir 将富有结果打包到八个文本夹中,该公文夹包罗二个可实行文件和可推行文件试行时供给的依赖性文件(暗中同意)
    --paths=DI奥迪Q3 设置导入路径
    --distpath=DI福睿斯 设置将包装的结果文件放置的门道
    --specpath=DIXC90 设置将spec文件放置的路线
    --windowed 使用windows子系统推行,不会张开命令行(只对windows有效)
    --nowindowed 使用控制台子系统奉行(暗中认可)(只对windows有效)
    --icon=<FILE.ICO> 将file.ico加多为可施行文件的能源(只对windows有效)

    如pyinstaller --paths="D:Queena" guess_exe.py

    :>pip install pyinstaller 
    

    1.3 工夫方案

    透过对照,最后摘取了地点例子中的 pyinstaller

    四.小实例(windows下)

    写好游戏文件guess_exe.py,代码如下:

    __author__ = 'qa-2'
    # -*- coding:utf-8 -*-
    # 摇3次骰子,当总数total,3<=total<=10时为小,11<=total<=18为大
    import random
    import time
    
    def enter_stake(current_money):
        '''输入小于结余的赌资及翻倍率,未考虑输入type错误的情况'''
        stake = int(input('How much you wanna bet?(such as 1000):'))
        rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))
        small_compare = current_money < stake * rate
        while small_compare == True:
            stake = int(input('You has not so much money ${}!How much you wanna bet?(such as 1000):'.format(stake * rate)))
            rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))
            small_compare = current_money < stake * rate
        return stake,rate
    
    def roll_dice(times = 3):
        '''摇骰子'''
        print('<<<<<<<<<< Roll The Dice! >>>>>>>>>>')
        points_list = []
        while times > 0:
            number = random.randrange(1,7)
            points_list.append(number)
            times -= 1
        return points_list
    
    def roll_result(total):
        '''判断是大是小'''
        is_big = 11 <= total <= 18
        is_small = 3 <= total <= 10
        if is_small:
            return 'Small'
        elif is_big:
            return 'Big'
    
    def settlement(boo,points_list,current_money,stake = 1000,rate = 1):
        '''结余'''
        increase = stake * rate
        if boo:
            current_money  = increase
            print('The points are '   str(points_list)   ' .You win!')
            print('You gained $'   str(increase)   '.You have $'   str(current_money)   ' now.' )
        else:
            current_money -= increase
            print('The points are '   str(points_list)   ' .You lose!')
            print('You lost $'   str(increase)   '.You have $'   str(current_money)   ' now.' )
        return current_money
    
    def sleep_second(seconds=1):
        '''休眠'''
        time.sleep(seconds)
    
    
    # 开始游戏
    def start_game():
        '''开始猜大小的游戏'''
        current_money = 1000
        print('You have ${} now.'.format(current_money))
        sleep_second()
        while current_money > 0:
            print('<<<<<<<<<<<<<<<<<<<< Game Starts! >>>>>>>>>>>>>>>>>>>>')
            your_choice = input('Big or Small: ')
            choices = ['Big','Small']
            if your_choice in choices:
                stake,rate = enter_stake(current_money)
                points_list = roll_dice()
                total = sum(points_list)
                actual_result = roll_result(total)
                boo = your_choice == actual_result
                current_money = settlement(boo,points_list,current_money,stake,rate)
            else:
               print('Invalid input!')
        else:
            sleep_second()
            print('Game Over!')
            sleep_second(2)
    
    if __name__ == '__main__':
        start_game()
    

    其后命令行,切换到guess_exe.py的目录下,
    输入:

    pyinstaller --onefile --nowindowed --icon=" D:QueenaPyCharmProjectsdist1computer_three.ico" guess_exe.py
    

    新葡亰496net 3

    新葡亰496net 4

    就能够在现阶段文件下产生build文件夹、dist文件夹和.spec文件。
    dist里就是guess_exe.exe可施行文件。

    新葡亰496net 5

    若果有打包错误,具体看build里的warn***.txt文档,里面详细记叙了不当的缘由。一般都以库错失。
    spec文件告诉PyInstaller怎样去管理脚本。它对脚本名以及一大半pyinstaller的可选参数进行加密。PyInstaller正是通过进行spec文件的内容来build the app。

    pip install pyinstaller
    

    1.4 pyinstaller 使用教程整理

    1. 一向在指令行用pip安装 pyinstaller【第壹次索要安装成功后,后边就无需再安装了】
    pip install pyinstaller
    

    新葡亰496net 6

    1. 在指令行中切换成要打包的次序所在目录,直接输入上边包车型大巴下令就能够
    pyinstaller learn01.py -F
    

    新葡亰496net 7

    pyinstaller参数 含义
    -F 指定打包后只生成一个exe格式的文件
    -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
    -c –console, –nowindowed 使用控制台,无界面(默认)
    -w –windowed, –noconsole 使用窗口,无控制台
    -p 添加搜索路径,让其找到对应的库。
    -i 改变生成程序的icon图标
    -h pyinstaller各个参数的讲解

    五. 参与麻瓜编制程序心得:

    自家最大的感想是魅力教程的天生丽质,它明显、简洁、易懂。
    录像学习进程中深入体会到了编写制定者的苦读,精美的配图加上少量的背景音乐,基础知识和适当的小品种,这一多元的配套实现了麻瓜的特出。
    成功的学会捌万数指标爬取之后,这种成就感几乎了呀哎,不能言喻。之后是数量的可视化还会有各个图片以及体将来网页上,那类别的落林茨让笔者很开心,并且这么些技艺让自家在职业技艺上有了相当大的进级,以往跳槽小编又有了本钱,十三分多谢麻瓜!

    六. 参谋网站:
    http://pythonhosted.org/PyInstaller/
    http://blog.csdn.net/zc02051126/article/details/8827868


    想上手实战的小白看恢复生机,这里有天涯论坛云课堂上最销路好的 Python 课程:Python 实战:四周学会爬虫系统

    :>pip3 install pyinstaller 
    
    1. 履新或提高

    1.5 关于 pyinstaller 使用总计

    在用 pyinstaller 打包成exe后,点击运营,开采直接闪退,有一点点懵逼,揣测肯定是上下一心的施用方式不对,后来也去google上追寻了,开掘也可能有人也在查究pyinstaller 打包exe后闪退的有关难点,遵照教程尝试了有些篇,找了几许天一贯尚未理想的答案,开掘照旧闪退。既然没找到答案,那么本身就去youtube上找个广播次数相当多的学科看看,看看别个怎么用法,最终大神的课程中找到了消除办法,在代码最终边丰裕相关代码就行,作者整理了瞬间两种做法:

    # 1.暂停的第一种方式
    # time.sleep(10)
    
    # 2.暂停的第二种方式
    # input("Press <enter>")
    
    # 3.暂停的第三种方式 (比较推荐这个)
    # 提示使用之前,记得引入相关组件 import os
    os.system("pause")
    

    观察以上的做法,突然想起来了在c#中写调整台的面貌,最后都会加一句一下代码(若是不加,那就一向退出调节台了,看不到运营后的调控台再次回到的参数:

    Console.Read();
    

    PyInstaller 的官网网站为 库会自动将 PyInstaller 命令安装到 Python 解释器目录中,与 pip 或 pip3 命令路线同样,由此能够直接利用。使用PyInstaller 库拾分简短,请小心,由于 PyInstaller 不援救源文件命中有斯洛伐克共和国(The Slovak Republic)语句号(.)存在,假若 dpython.py 文件在 D:codes 目录中,命令如下:

    1.6 相关参谋教程

    1. 今日头条的入门教程
    2. awesome中国语言医学类别
    3. b站视频教程1
    4. b站录制教程2
    :>pyinstaller dpython.py 
    
    pip install --upgrade pyinstaller
    

    1. 下载文件安装步向setup.py所在路子,实践python setup.py install 即可
    :>pyinstaller D:codesdpython.py 
    

    用pyinstaller打包文件

    实践达成后,源文件所在目录将转换 dist 和 build 八个文本夹。个中,build 目录是 pyinstaller 存储有的时候文件的目录,能够安全删除。最后的卷入程序在 dist 内部的 dpython 目录中。目录中别的文件是可推行文件 dpython.exe 的动态链接库。可以因而-F 参数对 Python 源文件生成二个独门的可试行文件,如下:

    pyinstaller -F test.py
    
    :>pyinstaller -F dpython.py 
    

    常用参数表明:

    实践后在 dist 目录中冒出了 dpython.exe 文件,未有其他借助库,试行它就可以。使用 PyInstaller 库要求小心以下难点:文件路线中不能够冒出空格和西班牙语句号(.);源文件必须是 UTF-8 编码,暂不帮忙任何编码类型。选用 IDLE编写的源文件都保留为 UTF-8 编码格局,可径直行使。PyInstaller 有一些常用参数,如下所示:

    • –icon=Logo路线
    • -F 打包成三个exe文件
    • -w 使用窗口,无调整台
    • -c 使用调控台,无窗口
    • -D 创制八个索引,里面包括exe以及其余部分依据文件
    • pyinstaller -h 来查阅参数

    -h, --help 查看帮忙
    -v, --version

    归来目的文件目录,开掘该目录下生成了.spec文件test.spec,打包好的exe文件,在同目录的dist文件中,也能够因此pyinstaller 改动生成exe程序的Logo,pyinstaller -F --icon=my.ico test.py

    查看 PyInstaller 版本

    • windows用户实行操作后频繁会发出程序闪退的情形,那是因为包装程序时相关库以及别的蒙受模块并未在联合打包,这里有二种缓慢解决方式:

    --clean 清理打包进程中的不常文件
    -D, --onedir
    默认值,生成 dist 目录
    -F, --onefile
    在 dist 文件夹中只生成独立的打包文件第
    -p DICR-V, --paths DIENCORE 增添 Python 文件使用的第三方库路线
    -i <.ico or .exe,ID or .icns>,--icon <.ico or .exe,ID or .icns >钦点打包程序采纳的图标(icon)文件

    1. 将exe拖到cmd中进行,终端里面就能有出口
    2. 在代码最终进入input操作,待用户输入后才会达成
    3. 规律和地点贰个看似,这里能够更有利的利用python自带的msvcrt,他会自行得到用户的输入并赶回,即达到规定的标准了点击大肆键截至,如下:

    PyInstaller 命令没有须要在 Python 源文件中加进代码,只需求通过命令行进行李包裹装就能够。-F 参数最为常用,对于蕴涵第三方库的源文件,能够行使-p 增加第三方库所在路线。假使第三方库由 pip 安装且在Python 意况目录中,则无需运用-p 参数。

    你大概感兴趣的篇章:

    • 用PyInstaller把Python代码打包成单个独立的exe可施行文件
    • 应用PyInstaller将python转成可进行理文件件exe笔记
    • 透过Py2exe将团结的python程序打包成.exe/.app的措施
    • 应用python编写轻便的小程序编写翻译成exe跑在win10上
    • 深入分析Python中的eval()、exec()及其有关函数
    • python的exec、eval使用深入分析
    • python学习课程之使用py2exe打包
    • 详解python中executemany和连串的应用方法
    • Python之py2exe打包工具详解
    • 详解Python3.6的py文件打包生成exe
    import msvcrtprint(" ********** 按任意键结束 **********")msvcrt.getch()
    

    本文由新葡亰496net发布于奥门新萄京娱乐场,转载请注明出处:主要教学pyinstaller的用法,学员肖杰

    关键词: