精华内容
下载资源
问答
  • python文件打包成exe可执行文件
    2021-07-11 18:15:34

    步骤一、安装pyinsatller

        打开命令行窗口,输入如下指令

    	pip3 install pyinstalle
    

        等待pyinsatller库安装完成。


    步骤二、使用pyinstaller打包Python程序

        1. 选中你要打包的py文件的上级目录,按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口”。
        2. 输入以下指令,开始打包

    pyinstaller -F -w (-i icofile) filename
    

        · filename表示py文件名
        · -w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)
        · 括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式
        · icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好
        · 输入完成,按回车,就会开始自动打包了,第一次打包过程可能比较缓慢


    操作演示

        1. 在工程里面需要有个主py文件,我命名为main.pymain.py里面的内容如下:

    # 这里可以import任意库
    
    print("这是输出")
    

        2. 然后我在工程文件夹按"shift"+右键,点"在此处打开PowerShell窗口"。
    在这里插入图片描述

    在这里插入图片描述
        3. 输入语句,开始打包main.py

    pyinstaller -F -w main.py
    

        4. 打包完成,在dist文件夹里面有生成的main.exe
    在这里插入图片描述
    最终生成的文件main.exe,双击即可运行。
    在这里插入图片描述


    注意事项!!

        · 在导入库文件的时候,尽可能的小。用from xxx import xxx。这样在打包的时候,它提取的库文件不会多余,整个打包的项目也会小一点。
        · 导入的exe在dist文件夹里面,不能动,它需要用其他文件夹里面的库文件。

    更多相关内容
  • 今天小编就为大家分享一篇pycharm 将python文件打包为exe格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了将python文件打包exe独立运行程序方法详解,需要的朋友可以参考下
  • 主要介绍如何利用pyinstaller将python文件打包成exe文件。
  • 本文实例讲述了Python打包可执行文件的方法。分享给大家供大家参考,具体如下: Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller...
  • 相信大家都想把自己完成的项目打包成EXE应用文件,然后就可以放在桌面随时都能运行了,下面来分享利用pytinstaller这个第三方库来打包程序,感兴趣的朋友跟随小编一起看看吧
  • 通过Kivy将Python文件打包成apk-附件资源
  • 如何将python文件打包成exe格式

    万次阅读 多人点赞 2021-12-18 09:23:51
    文章目录如何将python文件打包成exe格式1、安装pyinstallerimage-202112172208230072、进入python文件的存储位置3、生成exe文件4、pyinstaller详解 如何将python文件打包成exe格式 1、安装pyinstaller 打开命令行,...

    如何将python文件打包成exe格式

    1、安装pyinstaller

    打开命令行,安装pyinstaller模块

    pip install pyinstaller
    

    image-20211217220823007

    若出现如下图所示的无法连接HTTPS的问题请参考文章:成功解决win10下 Can’t connect to HTTPS URL because the SSL module is not available

    image-20211217220957438

    查看是否安装成功

    pip list
    

    image-20211217221137743

    2、进入python文件的存储位置

    看自己的保存路径

    image-20211217221256470

    3、生成exe文件

    执行命令

    pyinstaller -F tree.py(要打包的脚本文件)
    

    image-20211217222422342

    执行完成之后会新增如下图所示的文件

    image-20211217221530727

    而我们所需要的exe文件就在dist文件夹下面

    image-20211217221717967

    点击就可以运行了

    4、pyinstaller详解

    Pyinstaller -F tree.py 打包exe
     
    Pyinstaller -F -w tree.py 不带控制台的打包
     
    Pyinstaller -F -w -i tree.ico tree.py 打包指定exe图标打包
    

    image-20211217222247932

    展开全文
  • 主要介绍了PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 将自己写的python文件压缩成exe有两种方法: 1、使用pyinstaller 将自己写的python文件压缩成exe有两种方法: 1、使用pyinstaller step2:cd 到你的文件目录cd D:\py\python testcases\Slice step4:看结果...
  • 主要介绍了Windows下将Python文件打包成.EXE可执行文件的方法,需要的朋友可以参考下
  • 利用Python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行...-F打包成一个exe文件 -i图标路径 -w使用视窗,无控制台 -c使用控制台,无视窗 -D创建一个目录,包含exe以及其他一些依赖性文件 编译文件时,我
  • ") user_num = int(input("请输入你猜的数字:")) if user_num>sys_num: print("大了") elif user_num # pyinstaller -F "D:\pyteach\py2202\day02\test_guess.py" “”" 把文件打包成可执行文件: 1.在python解释器...
    import random
    
    while True:
        #系统给出随机数字
        sys_num = random.randint(1,10)
        print(sys_num)
        while True:
            print("猜数字游戏开始了!")
            user_num = int(input("请输入你猜的数字:"))
            if user_num>sys_num:
                print("大了")
            elif user_num<sys_num:
                print("小了")
            else:
                print("正确,你这很棒")
                break #跳出此次循环
    
        res = input("按任意键结束,按R键继续...")
        if res == "R":
            continue
        break
    
    # pyinstaller -F "D:\pyteach\py2202\day02\test_guess.py"
    

    “”"
    把文件打包成可执行文件:
    1.在python解释器(interpreter)中下载pyinstaller,当出现Successfully表明下载成功
    (注意下载的路径,要在此python项目开发环境中)
    2.在要打包的文件页面右击打开 open Termianl 进入控制台(注意看路径是否为当前文件的父及目录)
    3.输入:pyinstaller -F “要打包的文件路径”
    (注意路径要用英文双引号包裹起来,路径的话右击copy path)
    4.当控制台出现Successfully表明,文件打包成功,会出现dist文件夹,打包好的文件就在里面 右键Show in Exploer展示即可
    “”"
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • python文件打包成exe

    千次阅读 2022-04-15 16:38:16
    python文件打包成exe可执行文件: 以game2048.py脚本为例,实现打包生成可执行文件。 非计算机软件专业的我从大学开始学习计算机语言后,只知道如何写代码,运行调试,功能实现,总感觉差丢丢儿。后来因为兴趣和工作...

    python文件打包成exe可执行文件

    以game2048.py脚本为例,实现打包生成可执行文件

    本文介绍将python文件打包成exe可执行文件的方法。


    关键库:

    提示:pyinstaller安装,使用实践。

    1、 安装pyinstaller
    anaconda大环境下安装运行:conda install pyinstaller
    没有conda就在命令行中运行:pip install pyinstaller

    2、 打包python文件实例
    将编写的2048游戏程序脚本保存在game2048.py中;
    把它打包成exe需要在同一文件夹中打开命令行并输入:
    pyinstaller -F ./game2048.py
    回车后运行,如果一切顺利,文件夹中会多出一个后缀为spec的文件,以及两个名为dist和build的文件夹。
    打开dist,可以找到game2048.exe,这就是生成的可执行文件。

    3、pyinstaller的其他的选项,参数:
    -i: 后接图标文件名,表示用自定义图标生成exe程序
    -w: 生成的exe程序不带窗口执行
    如果想只运行tkinter 页面,去掉dos窗口需要在打包的时候 加上 -w 参数

    eg. pyinstaller -F calc.py -w

    注意:

    1. pyinstaller需安装在脚本所依赖环境env里,或者打包时保证你的脚本运行和所依赖的env一致。比如,用命令行打包有默认python环境,而调试代码用的是另一个环境。
    2. 生成的exe文件可复制到电脑上的任何地方单独使用。

    实践:

    游戏脚本game2048.py
    注意:游戏界面引入了curses库,Windows下使用该库的注意事项和安装

    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2021/8/6 15:15
    # @Author  : Haiyan T
    # @Email   : 893190391@qq.com 
    # @File    : game2048.py
    
    # Begin to show your code!
    import curses  # 绘制在下的用户界面和漂亮的图形
    from random import randrange, choice
    from collections import defaultdict
    
    letter_codes = [ord(ch) for ch in 'WASDRQwasdrq']  # 上左下右,ord函数是把字符转换成对应的数字
    actions = ['Up', 'Left', 'Down', 'Right', 'Restart', 'Exit']  # 上,左,下,右,重启,退出
    actions_dict = dict(zip(letter_codes, actions * 2))  # 把字母与动作对应起来。 zip是把元组中的值对应起来。
    # print(actions_dict)
    
    
    def get_user_action(keyboard):
        char = "N"  # char的初始值为N
        while char not in actions_dict:
            char = keyboard.getch()
        return actions_dict[char]  # 阻塞+循环,直到获得用户有效输入才返回对应行为
    
    
    # 行列转置
    def transpose(field):
        return [list(row) for row in zip(*field)]  # zip函数里边加*号,是把行变列,列变行。
    
    
    # 列表前后颠倒
    def invert(field):
        return [row[::-1] for row in field]
    
    
    # 创建棋盘
    class GameField(object):
        def __init__(self, height=4, width=4, win=2048):
            self.height = height  # 高
            self.width = width  # 宽
            self.win_value = win  # 过关分数
            self.score = 0  # 当前分数
            self.highscore = 0  # 最高分
            self.reset()  # 重置棋盘
    
        def reset(self):  # 定义一个reset函数
            if self.score > self.highscore:  # 如果当前分数大于最高分,那么把当前分数赋值给最高分
                self.highscore = self.score
            self.score = 0  # 当前分数恢复到0分
            self.field = [[0 for i in range(self.width)] for j in range(self.height)]  # 横纵坐标恢复到(0,0)
            self.spawn()  # 调用spawn这个函数
            self.spawn()
    
        def move(self, direction):  # 定义move函数
            def move_row_left(row):  # 向左移
                def tighten(row):  # squeese non-zero elements together 把零散的非零单元挤到一块
                    new_row = [i for i in row if i != 0]  # 如果i不等于零,把他们赋值到new_row这个元组中
                    new_row += [0 for i in range(len(row) - len(new_row))]  # 其余位置用0补充
                    return new_row  # 返回这个元组
    
                def merge(row):  # 定义merge函数,用来合并单元
                    pair = False  # pair初始值为假
                    new_row = []  # new_row初始值为空
                    for i in range(len(row)):  # 让i在格子里循环
                        if pair:  # 如果pair为真
                            new_row.append(2 * row[i])  # 那么把把row【i】的值乘以2,追加到new_row后边
                            self.score += 2 * row[i]  # 并且得分为row【i】的值乘以2
                            pair = False  # pair重新赋值为假
                        else:  # 如果pair为真
                            if i + 1 < len(row) and row[i] == row[i + 1]:  # 如果i+1还没到边界,并且此时的row【i】=row【i+1】
                                pair = True  # 那么pair为真
                                new_row.append(0)  # new_row后追加零
                            else:
                                new_row.append(row[i])  # 否则追加row【i】
                    assert len(new_row) == len(row)  # 提醒两者长度一致
                    return new_row
                return tighten(merge(tighten(row)))  # 反复合并,知道不能合并为止
    
            moves = {}
            moves['Left'] = lambda field:                              \
                    [move_row_left(row) for row in field]  # 做移动
            moves['Right'] = lambda field:                              \
                    invert(moves['Left'](invert(field)))  # invert是逆转
            moves['Up']    = lambda field:                              \
                    transpose(moves['Left'](transpose(field)))  # transpose是转置
            moves['Down']  = lambda field:                              \
                    transpose(moves['Right'](transpose(field)))
    
            if direction in moves:
                if self.move_is_possible(direction):  # 如果移动方向在四个方向上,
                    self.field = moves[direction](self.field)  # 那么调用moves函数
                    self.spawn()  # 产生随机数
                    return True
                else:
                    return False
    
        def is_win(self):
            return any(any(i >= self.win_value for i in row) for row in self.field)
    
        def is_gameover(self):
            return not any(self.move_is_possible(move) for move in actions)
    
        def draw(self, screen):
            help_string1 = '(W)Up (S)Down (A)Left (D)Right'
            help_string2 = '     (R)Restart (Q)Exit'
            gameover_string = '           GAME OVER'
            win_string = '          YOU WIN!'
            def cast(string):
                screen.addstr(string + '\n')
    
            def draw_hor_separator():
                line = '+' + ('+------' * self.width + '+')[1:]
                separator = defaultdict(lambda: line)
                if not hasattr(draw_hor_separator, "counter"):
                    draw_hor_separator.counter = 0
                cast(separator[draw_hor_separator.counter])
                draw_hor_separator.counter += 1
    
            def draw_row(row):
                cast(''.join('|{: ^5} '.format(num) if num > 0 else '|      ' for num in row) + '|')
    
            screen.clear()
            cast('SCORE: ' + str(self.score))
            if 0 != self.highscore:
                cast('HGHSCORE: ' + str(self.highscore))
            for row in self.field:
                draw_hor_separator()
                draw_row(row)
            draw_hor_separator()
            if self.is_win():
                cast(win_string)
            else:
                if self.is_gameover():
                    cast(gameover_string)
                else:
                    cast(help_string1)
            cast(help_string2)
    
        def spawn(self):
            new_element = 4 if randrange(100) > 89 else 2
            (i, j) = choice([(i, j) for i in range(self.width) for j in range(self.height) if self.field[i][j] == 0])
            self.field[i][j] = new_element
    
        def move_is_possible(self, direction):
            def row_is_left_movable(row):
                def change(i): # true if there'll be change in i-th tile
                    if row[i] == 0 and row[i + 1] != 0:  # Move
                        return True
                    if row[i] != 0 and row[i + 1] == row[i]:  # Merge
                        return True
                    return False
                return any(change(i) for i in range(len(row) - 1))
    
            check = {}
            check['Left']  = lambda field:                              \
                    any(row_is_left_movable(row) for row in field)
    
            check['Right'] = lambda field:                              \
                     check['Left'](invert(field))
    
            check['Up']    = lambda field:                              \
                    check['Left'](transpose(field))
    
            check['Down']  = lambda field:                              \
                    check['Right'](transpose(field))
    
            if direction in check:
                return check[direction](self.field)
            else:
                return False
    
    
    def main(stdscr):
        def init():
            # 重置游戏棋盘
            game_field.reset()
            return 'Game'
    
        def not_game(state):
            # 画出 GameOver 或者 Win 的界面
            game_field.draw(stdscr)
            # 读取用户输入得到action,判断是重启游戏还是结束游戏
            action = get_user_action(stdscr)
            responses = defaultdict(lambda: state)  # 默认是当前状态,没有行为就会一直在当前界面循环
            responses['Restart'], responses['Exit'] = 'Init', 'Exit'  # 对应不同的行为转换到不同的状态
            return responses[action]
    
        def game():
            # 画出当前棋盘状态
            game_field.draw(stdscr)
            # 读取用户输入得到action
            action = get_user_action(stdscr)
    
            if action == 'Restart':
                return 'Init'
            if action == 'Exit':
                return 'Exit'
            if game_field.move(action):  # move successful
                if game_field.is_win():
                    return 'Win'
                if game_field.is_gameover():
                    return 'Gameover'
            return 'Game'
    
        state_actions = {
                'Init': init,
                'Win': lambda: not_game('Win'),
                'Gameover': lambda: not_game('Gameover'),
                'Game': game
            }
    
        curses.use_default_colors()
        game_field = GameField(win=2048)
    
        state = 'Init'
    
        # 状态机开始循环
        while state != 'Exit':
            state = state_actions[state]()
    
    
    curses.wrapper(main)
    
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
    

    anaconda prompt下运行打包:
    (DeepLearningSlideCaptcha) C:\Users\Administrator>pyinstaller -F E:\structure_learning\0304t\2048\game2048.py

    1. (DeepLearningSlideCaptcha) 环境,可使用activate切换。
    2. pyinstaller -F E:\structure_learning\0304t\2048\game2048.py 命令。
    3. 结果
    ......
    7280 INFO: checking EXE
    7281 INFO: Building EXE because EXE-00.toc is non existent
    7281 INFO: Building EXE from EXE-00.toc
    7281 INFO: Appending archive to EXE C:\Users\Administrator\dist\game2048.exe
    7286 INFO: Building EXE from EXE-00.toc completed successfully.
    123456
    

    测试:

    1. 直接打包

    生成的exe程序如下:
    在这里插入图片描述
    双击运行
    在这里插入图片描述
    \2. 带图标打包
    pyinstaller -F -i 图标地址 脚本地址
    回车,打包完成

    pyinstaller -F -i E:\TanhaiyanLearn\structure_learning\0304t\2048\2048.ico  E:\TanhaiyanLearn\structure_learning\0304t\2048\game2048.pyE:\TanhaiyanLearn\structure_learning\0304t\2048\2048.ico  E:\TanhaiyanLearn\structure_learning\0304t\2048\game2048.py
    1
    

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 如果这个都搞定了,那么其他单个的python文件,和小python项目的打包,就更不成问题了。 1.先去找找,目前主流有哪几种方法。 找到几个名字 cx_Freeze PyInstaller py2exe 2.关于py2exe和PyInstaller的两者官网: ...
  • python文件打包

    2018-07-08 13:38:02
    pyinstaller工具主要用途是将.py文件打包成.exe文件。 操作步骤: (1)解压pyinstaller并安装文件 (2)运行pyinstaller .exe –F *.py即可生成.exe可执行文件
  • Python文件打包成可以直接执行的exe文件
  • python文件打包成方法

    2022-03-15 01:04:27
    python文件打包成 .exe 文件(windows下) 因为需要Pyinstaller 模块,所以需要先在 doc 黑窗口 命令提示符 下输入 pip install Pyinstaller 安装完成会提示:Successfully install Pyinstaller 进入打包文件的...
  • Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe、cx_freeze等 【工具:py2exe】 安装py2exe 安装该工具很简单: ...
  • 所以我们就可以将python文件直接打包成exe程序,这样就可以直接运行了~~~ 1.通过cmd进入存放python文件的上级目录 2.使用命令 pyinstaller 文件名.py 接着就是等待显示completed successfully,这个时候就说明打包...
  • 三步教你如何将python文件打包成exe可执行文件

    万次阅读 多人点赞 2020-04-12 22:20:17
    python 打包成exe 主要有两种,一种是py2exe,另一种便是pyInstaller,之前我是用py2exe的,但是我后来发现py2exe存在问题:1,打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上...
  • import sys sys.setrecursionlimit(50000) pyinstaller -F yolov5_test0728.py ...最后用命令行进入到相应目录,执行以下命令python setup.py build_ext --inplace(--inplace 代表是在当前目录下生成pyd文件) ...
  • 今天小编就为大家分享一篇python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python文件打包

    2017-08-15 22:17:07
    python用matplotlib绘图,当带有输入文件时,打包成.exe文件的处理详解这里假设你已安装了python,本机环境是win10–64位,python 版本是2.7,本文档包含以下几个过程: pywin32安装 pyinstaller安装 运行 pywin32...
  • UTool是整个python项目文件,里面包含packs文件夹,rcat_images文件夹,主函数main.py 其中packs里面包含若干py文件,rcat里面是图片文件 1.将所有文件放于主文件夹下,主文件夹里面可包含多个文件和文件夹 2.pyi-...
  • 如何将python中的文件打包成exe文件: 首先,在cmd中输入pip3 Install pyinstaller 他就会开始下载pyinstaller 下载成功后就点进去你想去打包的代码中,我使用的是pycharm,然后点击terminal,输入 Pyinstaller ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,539
精华内容 46,215
关键字:

python文件打包