返回顶部
首页 > 资讯 > 后端开发 > Python >Pyinstaller - 你的“神”队友
  • 826
分享到

Pyinstaller - 你的“神”队友

pythonpyinstaller 2023-08-31 14:08:40 826人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

哈哈!今天是我在2023年发布的第一篇文章呀! 这两天,我在做一个爬虫项目。因为我做好后准备给我的朋友看看,但我朋友没有 python 环境。所以,只好想办法把 .py 打包成 .exe 。 在网上搜了一下,发现目前相对主流的有 Pyins

哈哈!今天是我在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

--结束END--

本文标题: Pyinstaller - 你的“神”队友

本文链接: https://lsjlt.com/news/385759.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Pyinstaller - 你的“神”队友
    哈哈!今天是我在2023年发布的第一篇文章呀! 这两天,我在做一个爬虫项目。因为我做好后准备给我的朋友看看,但我朋友没有 Python 环境。所以,只好想办法把 .py 打包成 .exe 。 在网上搜了一下,发现目前相对主流的有 Pyins...
    99+
    2023-08-31
    python pyinstaller
  • Python 应用一键打包:PyInstaller 的神奇之旅
    PyInstaller 介绍 PyInstaller 是一款跨平台的 Python 程序打包工具,它允许你将 Python 代码打包成独立的可执行文件,无需安装 Python 解释器。这些可执行文件可以在任何装有兼容库的操作系统上运行。...
    99+
    2024-02-15
    Python PyInstaller 打包 可执行文件
  • Python编写表白神器!向你的女神告白
    马上就是七夕情人节了,送什么给你女神呢。鲜花什么的还不够!在写一个告白程序,向女神告白!让她看看你的爱意!哈哈哈哈! 程序和代码下载地址:点击下载 Python简介 Python是纯粹的自由软件, 源代码和解释器CPython...
    99+
    2023-01-31
    神器 告白 女神
  • Python检测删除你的好友-wxpy模
    下面是代码: from wxpy import *import timeprint("本软件采用特殊字符检测,即对方收不到任何信息!")print("或许某个版本微信就会修复该字符了,不作通知哈!")print("软件编写日期:2019-...
    99+
    2023-01-30
    好友 Python wxpy
  • Xdebug 让你神清气爽:PHP 调试的提神剂,让你的代码焕发新生
    1. 实时断点跟踪 Xdebug 允许开发者在代码中的任意位置设置断点,当执行到达断点时,调试器会暂停,开发者可以检查变量值、调用堆栈和其他关键信息。这极大地简化了代码调试过程,使开发者能够快速识别问题所在。 2. 堆栈跟踪和变量检查 X...
    99+
    2024-03-13
    Xdebug扩展
  • C++的友元和内部类你了解吗
    目录友元函数案例友元类内部类总结友元分为:友元函数 和 友元类 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。...
    99+
    2024-04-02
  • 跟女朋友旅游三天,Python治好了我的精神内耗...
    前阵子请了年假,陪女朋友出了趟远门,途中心情愉悦景色宜人,不过累也是真的累,尤其在几天都没休息好还要一路颠簸回到家之后。谁想到前脚刚踏回家门的我,刚准备休息,就收到了这样的消息:把图片逐一保存,没想到她四天功夫竟然拍了小两百张照片。这就有点...
    99+
    2023-05-14
    图像 HSV 饱和度
  • C++的对象特性和友元你真的了解吗
    目录对象特征构造函数和析构函数函数的分类以及调用拷贝构造函数调用时机 构造函数调用规则深拷贝与浅拷贝初始化列表类对象作为类变量静态成员成员变量和成员函数分开储存this指针...
    99+
    2024-04-02
  • Python数据分析:让数据成为你的盟友
    Python数据分析的优势 Python以其简捷的语法和丰富的第三方库而著称,非常适合数据分析。以下是Python数据分析的主要优势: 易于上手:Python易于学习,即使是初学者也能够快速上手。 强大的库:Pandas、NumPy、...
    99+
    2024-02-17
    Python 数据分析 Pandas NumPy Matplotlib Seaborn
  • 带你了解Python语言的神奇世界
    目录一、特点二、语法三、表达式四、变量五、缩进六、数据类型七、Python值得学习嘛?Python是世界上最流行的解释型编程语言之一。 由 Guido van Rossum 设计,作...
    99+
    2024-04-02
  • C++线程安全的队列你了解嘛
    目录无界队列有界队列总结 无界队列 #include<queue> #include<mutex> #include<condition_variabl...
    99+
    2024-04-02
  • 黑科技 Python脚本帮你找出微信上删除你好友的人
    相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了。但群发消息不仅仅会把通讯录里面所有的好友骚扰一遍,而且你还得挨个删除好几百个聊天记录,回复大家的疑问和鄙视。作...
    99+
    2022-06-04
    的人 帮你 脚本
  • 想要成为Java大神?Laravel数据类型教程是你的必备神器!
    Java是一门广泛使用的编程语言,它具有可移植性、面向对象、高性能等特点,因此在软件开发领域中得到了广泛应用。而Laravel是一款流行的PHP框架,它提供了许多有用的功能和工具,使得PHP开发变得更加轻松。 在Java开发中,数据类型是...
    99+
    2023-09-21
    教程 laravel 数据类型
  • 这才是你想要的 Python 可视化神器
    Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。 受 Seaborn 和 ggplot2 的启发,它专门设计为具有简洁,一致且易于学习的 AP...
    99+
    2023-01-31
    神器 你想要 这才是
  • 用Python监控你的朋友都在浏览哪些网站?
    目录一、需求二、背景三、requirements四、代码五、执行六、问题七、总结八、展望一、需求 1.获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一...
    99+
    2024-04-02
  • 12C 数据库之坑爹又坑队友的无故链接不上问题处理
    公司两年前上的系统,当时要用12c的新特性,就上线投产了。初始oracle版本为12.1,该版本在实际使用中bug不断,简直头疼。近日开发投产一些新的应用服务器大概20多台,在投产至10台的时候,数据库内部...
    99+
    2024-04-02
  • Xdebug 带你飞:揭秘 PHP 调试神器的魅力
    功能 Xdebug 拥有丰富的功能,包括: 步进调试:逐行执行代码,允许您检查变量值和函数调用。 变量检查:在任何时间检查变量的值,类型和结构。 异常处理:捕捉并分析异常,帮助您确定错误的根源。 覆盖率分析:确定代码中哪些部分已被执行,...
    99+
    2024-03-13
    Xdebug扩展
  • 阿里云神龙服务器团队探索未来计算的可能性
    阿里云神龙服务器团队是中国领先的云计算服务提供商,致力于推动云计算技术的发展和应用。本文将详细介绍该团队的发展历程、团队构成、主要产品和服务以及未来的发展方向。 一、发展历程阿里云神龙服务器团队成立于2014年,是阿里巴巴集团在云计算领域的...
    99+
    2023-10-31
    神龙 阿里 可能性
  • 神奇的c/c++小游戏((提高你的编程兴趣)
    目录神奇的c/c++神奇的c/c++ 以下代码在Dev,codeblocks,VC上都能运行 #include<stdio.h> #include<time.h...
    99+
    2024-04-02
  • 你知道Vue中神奇的$set是如何实现的吗?
    目录前言应用场景set实现数组实现响应对象实现响应总结前言 在日常开发中,$set的也是一个非常实用的API,因为Vue2实现响应式的核心是利用了ES5的Object.defineP...
    99+
    2022-12-14
    Vue实现$set Vue $set
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作