我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pyinstaller - 你的“神”队友

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pyinstaller - 你的“神”队友

哈哈!今天是我在2023年发布的第一篇文章呀!

这两天,我在做一个爬虫项目。因为我做好后准备给我的朋友看看,但我朋友没有 Python 环境。所以,只好想办法把 .py 打包成 .exe 。

在网上搜了一下,发现目前相对主流的有 Pyinstaller 、 Py2exe 等。最终我选择了 Pyinstaller 。

我是用的 PyCharm 。在“终端”输入:

pip install pyinstaller

 即可安装。


安装完成后,你就可以开始打包了。最快速的打包方式便是这样:

pyinstaller 文件名.py

如果看到 “successfully” 一词就代表打包“成功”了。

如此, Pyinstaller 就会在你的项目目录下生成 build文件夹 、 dist文件夹 与一个 文件名.spec。

其中, build文件夹 存放的是打包时的临时文件,可以删除; dist文件夹 下的文件夹便是你打包出来的,其下的 文件名.exe 是可执行的(注意!这里不能单独运行这个文件,它是有依赖的!后文还会介绍其它方法!);而 文件名.spec 是配置规范文件,它说明了软件包如何被配置、打了哪些补丁、安装哪些文件、安装到哪里等等。

现在你就可以在文件夹下运行 .exe 文件了!


但是,在我们实际开发过程中,会有各种各样的需求,这里就需要配置参数了。

常见参数:

-c(默认)显示控制台(命令行窗口,即黑框框)
-w不显示控制台
-D(默认)生成一个包含 .exe 文件的目录,所有依赖项和 .exe 文件位于同一目录下
-F将所有依赖项打包为单独的、无依赖的 .exe 文件。
-i指定应用图标( .ico 文件)
-n指定生成的目录、 .spec 文件、 .exe 文件的名字
-p设置导入路径

这里说一下:建议大家在调试时都不要使用 -w 参数,这样在看一些异常信息时会更加方便;另外单文件运行与目录下运行相比速度更慢(不止慢一点),所以这里要看个人情况去填写参数; -p 参数是当你在程序中引入了某个包(通过 import ),那么你就需要使用 “-p 引入的包的路径”,如有多个路径,则用分号分隔。

举个例子。源文件叫 main.py ,图标为 ico.ico ,这是一个爬虫程序,引入了 requests 包,需要控制台,程序名为 crawler ,追求速度,则输入:

pyinstaller -p D:\demo\venv\Lib\site-packages\requests -n crawler -i ico.ico -c -D main.py

好的呢!现在你就可以发给你的好朋友了呢!

但是……我以我的亲身经历告诉大家:似乎并不行。

最开始,我选择了打包为单文件,但发现用 -p 参数导入了,但和没导入一模一样,都会报错(这里可能是我自己的问题)。于是,我改为了生成一个包含 .exe 文件的目录便解决了第一个问题。所以,我个人是比较推荐选择生成一个包含 .exe 文件的目录的(使用 -D )。

弄好后,因为我自己的电脑有Python环境,以防万一,我准备放到我们家老电脑上试试(我们家老电脑系统是 win7 / 32位 )。结果,打开程序后先是报错:

无法启动此程序,因为计算机中丢失 api-ms-win-core-path-|1-1-0.dll。尝试重新安装该程序以解决此问题。

然后爆出错误信息,还没看清就闪退了。

好吧我一脸懵啊!

对于闪退的问题,只用打开 cmd 执行程序就能看到报错信息了。

但对于第一个问题,可以想办法下载这个动态库,放在系统指定的位置,但这个并不能直接解决问题。还有三种方法:一是将源文件在 32位 的系统上生成为 .exe 文件,二是在 64位 系统上下载 32位 的虚拟机进行生成,三是使用 32位 的 anaconda 。具体可参考关于python打包py文件成exe文件_星浩前进中的博客-CSDN博客_py打包成exe调用其他包需要调用其他csv。 而对于报错信息,如果按上述过程重新生成后还是存在,我也就无能为力了。


我之所以说Pyinstaller是“神”队友,是因为它的操作较简单,只是各种各样的坑有点多。但是其实只要把出现这些坑的原因、解决方法搞清楚,那使用起来就是非常方便的!


祝大家元旦快乐!

来源地址:https://blog.csdn.net/qq_43546083/article/details/128511494

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pyinstaller - 你的“神”队友

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 应用一键打包:PyInstaller 的神奇之旅

PyInstaller 是 Python 程序的一键打包神器,它可以将 Python 代码转换为独立的可执行文件,让你轻松地分发和部署你的程序。本文将带你探索 PyInstaller 的神奇功能,让你轻松掌握一键打包的技巧。
Python 应用一键打包:PyInstaller 的神奇之旅
2024-02-15

Python编写表白神器!向你的女神告白

马上就是七夕情人节了,送什么给你女神呢。鲜花什么的还不够!在写一个告白程序,向女神告白!让她看看你的爱意!哈哈哈哈!程序和代码下载地址:点击下载 Python简介Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GN
2023-01-31

Python检测删除你的好友-wxpy模

下面是代码:from wxpy import *import timeprint("本软件采用特殊字符检测,即对方收不到任何信息!")print("或许某个版本微信就会修复该字符了,不作通知哈!")print("软件编写日期:2019-2-
2023-01-30

Python数据分析:让数据成为你的盟友

Python凭借其强大的数据操作和分析库,已成为数据分析领域的利器。本文将引导你充分利用Python的数据分析能力,释放数据的巨大价值,帮助你做出明智的决定。
Python数据分析:让数据成为你的盟友
2024-02-17

黑科技 Python脚本帮你找出微信上删除你好友的人

相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了。但群发消息不仅仅会把通讯录里面所有的好友骚扰一遍,而且你还得挨个删除好几百个聊天记录,回复大家的疑问和鄙视。作为一个互联网从业者,除了群发消息就
2022-06-04

大神教你提取PPT中的声音文件

  小编前两天在网上下载的一个很喜欢的PPT,里面还使用了很优美的背景音乐,小编很是喜欢,可是怎么样才能把背景音乐提取出来,方便我日后使用呢?于是小编就请教了一位大神向我讲解了如何提取PPT中的声音文件,下面我们一起来看一下吧!  以下就是提取PPT中的声音文件的具体操作步骤:  第一步、首先我们需要打开一份我们喜欢的
大神教你提取PPT中的声音文件
2024-04-17

这才是你想要的 Python 可视化神器

Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。 受 Seaborn 和 ggplot2 的启发,它专门设计为具有简洁,一致且易于学习的 API
2023-01-31

阿里云神龙服务器团队探索未来计算的可能性

阿里云神龙服务器团队是中国领先的云计算服务提供商,致力于推动云计算技术的发展和应用。本文将详细介绍该团队的发展历程、团队构成、主要产品和服务以及未来的发展方向。一、发展历程阿里云神龙服务器团队成立于2014年,是阿里巴巴集团在云计算领域的重要组成部分。在过去的几年里,该团队不断探索新的技术,推动云计算的发展,成为
阿里云神龙服务器团队探索未来计算的可能性
2023-10-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录