当前位置: 澳门新濠3559 > 编程 > 正文

pyinstaller将Python脚本打包成可执行程序,使用Py

时间:2019-10-06 08:24来源:编程
2.安装方法 安装pywin32:下载安装PyInstaller运行前需要安装windows拓展---pywin32pywin32下载地址: 安装PyInstaller: 验证安装成功与否: python2 lt;FILE.ICO将file.ico添加为可执行文件的资源(只对window
2.安装方法

安装pywin32:下载安装PyInstaller运行前需要安装windows拓展---pywin32pywin32下载地址:

安装PyInstaller:

澳门新濠3559 1

验证安装成功与否:

澳门新濠3559 2澳门新濠3559 3

python2 & python3

澳门新濠3559 4验证安装成功与否:澳门新濠3559 5

3.使用方法

澳门新濠3559 6澳门新濠3559 7

源码视频书籍练习题等资料进群984632579 即可免费获取

更多python记得关注我的公众号 从0到1Python之路

1087 INFO: PyInstaller: 3.2
1087 INFO: Python: 2.7.12
1088 INFO: Platform: Windows-7-6.1.7600-SP0
1090 INFO: wrote C:UsersthinkpadDesktopmonitormonitor.spec
1172 INFO: UPX is available.
1174 INFO: Extending PYTHONPATH with paths
['C:\Users\thinkpad\Desktop\monitor',
 'C:\Users\thinkpad\Desktop\monitor']

pyinstaller -F .py全路径 –distpath exe存放目录

五. 参加麻瓜编程心得:

我最大的感想是魔力教程的优美,它清晰、简洁、易懂。
视频学习过程中深刻体会到了编制者的用心,精美的配图加上适宜的背景音乐,基础知识和贴切的小项目,这一系列的配套成就了麻瓜的不凡。
成功的学会十万数据的爬取之后,那种成就感简直了哎呀,无法言喻。之后是数据的可视化还有各种图形以及显示在网页上,这一连串的成就都让我很开心,而且这个技能让我在职业技术上有了很大的提升,以后跳槽我又有了资本,十分感谢麻瓜!

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


想上手实战的小白看过来,这里有网易云课堂上最畅销的 Python 课程:Python 实战:四周学会爬虫系统

上大学的时候有老师不给上课的PPT,就总想有个程序能偷偷复制老师的U盘。一直没有去实现,最近不想看论文,就想起来这个事情了,发现其实用几行python代码就能搞定了。分两步,首先写出来python代码,其次把.py文件转换成exe文件,直接在windows电脑上后台运行。

增加版本信息文件方法如下:

以上这篇Pyinstaller将py打包成exe的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

一.pyinstaller简介

pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行

最新版是pyinstaller 3.1.1。支持python2.7和python3.3 。
可运行在Windows,Mac和Linux操作系统下。
但它不是跨编译的,也就是说在Windows下用PyInstaller生成的exe只能运行在Windows下,在Linux下生成的只能运行在Linux下。

代码示例:澳门新濠3559 8上面就是所有的代码,代码有两个地方要改成你自己的路径,我在代码里注释了澳门新濠3559 9

pip install pyinstaller
不怕麻烦的也可以通过下载源码python setup.py install 进行安装 。

验证是否成功:pyinstaller -v

三.打包

打包的app里并不包含任何源码,但将脚本的.pyc文件打包了。

基本语法:
pyinstaller options myscript.py
常用的可选参数如下:
--onefile 将结果打包成一个可执行文件
澳门新濠3559,--onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)
--paths=DIR 设置导入路径
--distpath=DIR 设置将打包的结果文件放置的路径
--specpath=DIR 设置将spec文件放置的路径
--windowed 使用windows子系统执行,不会打开命令行(只对windows有效)
--nowindowed 使用控制台子系统执行(默认)(只对windows有效)
--icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对windows有效)

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

第一种:直接用命令pip install pyinstaller。然后就是等待安装了,如果你安装了pip,使用这个命令安装是最方便的了。未安装pip请参考

pyinstaller安装比较简单,支持pip 安装,直接使用如下命令即可完成安装:

您可能感兴趣的文章:

  • 利用PyInstaller将python程序.py转为.exe的方法详解
  • 利用pyinstaller将py文件打包为exe的方法

pyinstaller将Python脚本打包成可执行程序,使用Pyinstaller将py可以打包成exe澳门新濠3559。二.pyinstaller在windows下的安装

使用命令pip install pyinstaller即可
在windows下,pyinstaller需要PyWin32的支持。当用pip安装pyinstaller时未找到PyWin32,会自动安装pypiwin32

澳门新濠3559 10

澳门新濠3559 11

出现Successfully installed pyinstaller-3.1.1 pypiwin32-219即表示安装成功

1.适用版本

python2 & python3

pyinstaller specfile
或者

2、安装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

澳门新濠3559 12

澳门新濠3559 13

就会在当前文件下形成build文件夹、dist文件夹和.spec文件。
dist里就是guess_exe.exe可执行文件。

澳门新濠3559 14

如果有打包错误,具体看build里的warn***.txt文档,里面详细记载了错误的原因。一般都是库丢失。
spec文件告诉PyInstaller如何去处理脚本。它对脚本名以及大多数pyinstaller的可选参数进行加密。PyInstaller就是通过执行spec文件的内容来build the app。

1.PyInstaller

注: spec文件每次通过命令生成时都会存在,可以通过简单的修改增加相应的功能,如加图标,指定版权文件 。

澳门新濠3559 15

第二种就是下载pyinstaller包

1.官网下载pyinstall 工具, 并解压2.通过cmd跳到pyinstaller目录 并执行 setup.py install 进行安装。接下来就是等待了,可能会安装大量的库

澳门新濠3559 16安装截图此时pyinstaller这个工具已经安装到和pip相同的目录下澳门新濠3559 17工具安装完成

下面就是进行打包了:

进入你的源程序所在的目录,然后pyinstaller xxx.py澳门新濠3559 18打包截图然后在此目录下就会生成一个dist的文件夹,里面存放的就已经生成的.exe文件澳门新濠3559 19

开文件夹,里面会有好多文件,找到.exe文件,双击就可以运行你的程序了

(注意:如果安装了电脑管家或者360的会弹出是否允许执行,一定要允许,否则就执行不了)

C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -i alert.ico  -F  monitor.py

4、实例

两种工具将.py文件打包成exe:

二、使用

执行结果:

2.cx_Freeze

澳门新濠3559 20

pyi-build specfile

背景:分享python编写的小脚本时,拷贝代码还缺各种环境,使用Pyinstaller将py可以打包成exe,直接运行即可

这里以之前写的程序为例,可以通过如下命令生成一个可执行文件

澳门新濠3559 21

需要注意的是,pyinstaller在windows平台下依赖pywin32模块。在使用pyinstaller前,需要安装好pywin32模块(exe 的包,安装非常简单)。

澳门新濠3559 22

可以通过grab_version.py先读取一个已经存在的exe文件,获取其版本信息,如下:

澳门新濠3559 23

四、版本信息文件的生成

1、安装pyinstaller运行时所需要的windows拓展pywin32

默认安装完成后,pyinstaller程序位于C:Python27Scripts目录下,可以通过执行pyinstaller  python_script.py 生成可执行文件 ,生成的可执行文件位于执行所在目录下的dist目录下。其高级参数如下:

3、pyinstaller指令

C:UsersthinkpadDesktopmonitor>C:Python27Libsite-packagesPyInstallerutilscliutilsgrab_version.py C:WindowsSystem32sc.exe
Version info written to: file_version_info.txt
将file_version_info.txt放到对应的目录,并将内部的信息修改后,可以按步骤2中的方法,生成带有版权信息的可执行文件。

参数 含 义
-F 只生成一个exe文件
–distpath 指定生成的exe存放的目录
–workpath 指定编译中临时文件存放的目录
-D 创建一个目录包含:exe文件、依赖文件
-i 指定exe图标
-p 指定exe依赖的包、模块
-d 编译为debug模式,获取运行中的日志信息
-clean 清理编译时临时文件
-c 使用控制台
-w 使用窗口
-version-file 添加exe版本信息

可以看到上面的upx是可用的。通过spec文件也一样,增加upx=True即可。

pip install pyinstaller

三、upx压缩

澳门新濠3559 24

此时的spec文件内容如下:

C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -i alert.ico --version-file=file_version_info.txt -F  monitor.py
版本信息的写法看后面 。

–distpath=path_to_executable 指定生成的可执行文件存放的目录,默认存放在dist目录下
–workpath=path_to_work_files 指定编译中临时文件存放的目录,默认存放在build目录下
–clean 清理编译时的临时文件
-F, –onefile 生成单独的exe文件而不是文件夹
-d, –debug 编译为debug模式,有助于运行中获取日志信息
–version-file=version_text_file 为exe文件添加版本信息,版本信息可以通过运行pyi-grab_version加上要获取版本信息的exe文件的路径来生成,生成后的版本信息文件可以按需求修改并作为--version-file的参数添加到要生成的exe文件中去
-i <FILE.ico>, -i <FILE.exe,ID>, –icon=<FILE.ico>, –icon=<FILE.exe,ID>
为exe文件添加图标,可以指定图标路径或者从已存在的exe文件中抽取特定的ID的图标作为要生成的exe文件的图标
另外,还可以通过spec文件来生成可执行文件 。具体命令如下:

# -*- mode: python -*-
block_cipher = None
a = Analysis(['monitor.py'],
             pathex=['C:\Users\thinkpad\Desktop\monitor'],
             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='monitor',
          debug=False,
          strip=False,
          upx=True,
          console=True , version-file=file_version_info.txt , icon='alert.ico')

本篇算是 python编写windows tomcat守护进程 篇的延续 。之前写的代码没事想要打包成exe文件,可以将python打包成exe的工具主要有py2exe、pyinstaller、cx_freeze 。其中py2exe感觉是最难用,打包最烂的;cx_freeze打包比较简单,但是功能没有另外两个强大,所以个人感觉pyinstaller是最好用的。pyinstaller支持打包压缩、打包成单个文件、增加个性图标、设置版权信息。效果如下:

默认生成的python可执行文件有点大,可以通过upx程序进行压缩,upx程序的主页位于:https://upx.github.io/ ,目前windows版的最新upx为upx391w.zip ,下载后,将其中的upx.exe文件放到C:Python27目录下(python可执行程序的安装目录),再次执行的时候,可以跟上--upx进行压缩。默认存在时不指定也会进行压缩,生成exe文件时,在其日志中可以发现如下内容:

C:Usersthinkpad>cd /d C:UsersthinkpadDesktopmonitor
C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -F monitor.py

在monitor增加一个ico图标文件,操作方法如下:

一、安装

澳门新濠3559 25

编辑:编程 本文来源:pyinstaller将Python脚本打包成可执行程序,使用Py

关键词: 澳门新濠3559