-
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.py
。main.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格式的方法
2020-09-19 17:20:37今天小编就为大家分享一篇pycharm 将python文件打包为exe格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
将python文件打包exe独立运行程序方法详解
2020-09-17 23:22:54主要介绍了将python文件打包exe独立运行程序方法详解,需要的朋友可以参考下 -
如何将python文件打包成exe文件
2019-08-10 10:51:32主要介绍如何利用pyinstaller将python文件打包成exe文件。 -
Python打包可执行文件的方法详解
2020-12-25 01:14:08本文实例讲述了Python打包可执行文件的方法。分享给大家供大家参考,具体如下: Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller... -
将python文件打包成EXE应用程序的方法
2020-09-19 08:53:16相信大家都想把自己完成的项目打包成EXE应用文件,然后就可以放在桌面随时都能运行了,下面来分享利用pytinstaller这个第三方库来打包程序,感兴趣的朋友跟随小编一起看看吧 -
通过Kivy将Python文件打包成apk-附件资源
2021-03-05 15:16:18通过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
若出现如下图所示的无法连接HTTPS的问题请参考文章:成功解决win10下 Can’t connect to HTTPS URL because the SSL module is not available
查看是否安装成功
pip list
2、进入python文件的存储位置
看自己的保存路径
3、生成exe文件
执行命令
pyinstaller -F tree.py(要打包的脚本文件)
执行完成之后会新增如下图所示的文件
而我们所需要的exe文件就在dist文件夹下面
点击就可以运行了
4、pyinstaller详解
Pyinstaller -F tree.py 打包exe Pyinstaller -F -w tree.py 不带控制台的打包 Pyinstaller -F -w -i tree.ico tree.py 打包指定exe图标打包
-
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020-09-17 13:28:06主要介绍了PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
python脚本打包可执行文件exe
2018-12-04 11:31:10将自己写的python文件压缩成exe有两种方法: 1、使用pyinstaller 将自己写的python文件压缩成exe有两种方法: 1、使用pyinstaller step2:cd 到你的文件目录cd D:\py\python testcases\Slice step4:看结果... -
Windows下将Python文件打包成.EXE可执行文件的方法
2020-09-20 04:37:22主要介绍了Windows下将Python文件打包成.EXE可执行文件的方法,需要的朋友可以参考下 -
将Python文件打包成.EXE可执行文件的方法
2020-12-31 21:37:43利用Python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行...-F打包成一个exe文件 -i图标路径 -w使用视窗,无控制台 -c使用控制台,无视窗 -D创建一个目录,包含exe以及其他一些依赖性文件 编译文件时,我 -
Python 文件打包成可执行文件
2022-02-20 20:31:39") 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:16python文件打包成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
注意:
- pyinstaller需安装在脚本所依赖环境env里,或者打包时保证你的脚本运行和所依赖的env一致。比如,用命令行打包有默认python环境,而调试代码用的是另一个环境。
- 生成的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
- (DeepLearningSlideCaptcha) 环境,可使用
activate
切换。 - pyinstaller -F E:\structure_learning\0304t\2048\game2048.py 命令。
- 结果
...... 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
测试:
- 直接打包
生成的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
-
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2020-12-24 23:08:04如果这个都搞定了,那么其他单个的python文件,和小python项目的打包,就更不成问题了。 1.先去找找,目前主流有哪几种方法。 找到几个名字 cx_Freeze PyInstaller py2exe 2.关于py2exe和PyInstaller的两者官网: ... -
python文件打包器
2018-07-08 13:38:02pyinstaller工具主要用途是将.py文件打包成.exe文件。 操作步骤: (1)解压pyinstaller并安装文件 (2)运行pyinstaller .exe –F *.py即可生成.exe可执行文件 -
Python文件打包成.exe文件
2022-03-30 17:29:58将Python文件打包成可以直接执行的exe文件 -
python文件打包成方法
2022-03-15 01:04:27python文件打包成 .exe 文件(windows下) 因为需要Pyinstaller 模块,所以需要先在 doc 黑窗口 命令提示符 下输入 pip install Pyinstaller 安装完成会提示:Successfully install Pyinstaller 进入打包文件的... -
Python脚本文件打包成可执行文件的方法
2021-01-21 17:33:39将Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe、cx_freeze等 【工具:py2exe】 安装py2exe 安装该工具很简单: ... -
将python文件打包成可运行的exe程序
2022-02-08 15:38:02所以我们就可以将python文件直接打包成exe程序,这样就可以直接运行了~~~ 1.通过cmd进入存放python文件的上级目录 2.使用命令 pyinstaller 文件名.py 接着就是等待显示completed successfully,这个时候就说明打包... -
三步教你如何将python文件打包成exe可执行文件
2020-04-12 22:20:17python 打包成exe 主要有两种,一种是py2exe,另一种便是pyInstaller,之前我是用py2exe的,但是我后来发现py2exe存在问题:1,打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上... -
python文件打包方式(加密)
2020-10-28 11:23:40import sys sys.setrecursionlimit(50000) pyinstaller -F yolov5_test0728.py ...最后用命令行进入到相应目录,执行以下命令python setup.py build_ext --inplace(--inplace 代表是在当前目录下生成pyd文件) ... -
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2020-09-19 07:56:31今天小编就为大家分享一篇python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python文件打包
2017-08-15 22:17:07python用matplotlib绘图,当带有输入文件时,打包成.exe文件的处理详解这里假设你已安装了python,本机环境是win10–64位,python 版本是2.7,本文档包含以下几个过程: pywin32安装 pyinstaller安装 运行 pywin32... -
多个python文件打包成可执行的exe文件
2020-04-28 21:33:24UTool是整个python项目文件,里面包含packs文件夹,rcat_images文件夹,主函数main.py 其中packs里面包含若干py文件,rcat里面是图片文件 1.将所有文件放于主文件夹下,主文件夹里面可包含多个文件和文件夹 2.pyi-... -
在pycharm中将python文件打包成exe可执行文件
2021-08-06 16:09:36如何将python中的文件打包成exe文件: 首先,在cmd中输入pip3 Install pyinstaller 他就会开始下载pyinstaller 下载成功后就点进去你想去打包的代码中,我使用的是pycharm,然后点击terminal,输入 Pyinstaller ...