一前言

在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好,其他人不能直接看到python代码;第二,打包后的exe程序无需再安装相应的模块即可直接使用;其中,第二条是我们做打包工作的主要考虑,方便工具的分发和使用。

二 python打包工具简洁

Python是一门开放、包容、优雅的开发语言,所以,相关领域的模块或工具自然是很多的,其中打包工具,比较广泛的是以下三个:

py2exe

Cx_freeze

但是,在此,我只想介绍Pyinstaller的使用,原因是:该工具使用非常简单,只需要一条命令,无需像其他工具还要编写setup文件;另外,该工具更新快,能够适应python的更新,目前发布到3.4版本了。当然,还有其他原因,对其他同质的工具了解不多,拥有Pyinstaller,足够了!

三 Pyinstaller安装方法

依稀记得在py2的时代,使用pyinstaller2.x是直接下载的windows安装包进行安装,目前迁移到py3,再次关注pyinstaller时,它已经发展到了3.4,并且支持2.7 or 3.4-3.7,这点非常重要,可能其他打包工具还不能这么好的支持python3。

Pyinstaller的安装变的非常简单,如下:

pip install pyinstaller

使用pip安装的好处是,会把相关的依赖一并安装了。

四 Pyinstaller用法

该工具好用的主要表现,莫过于使用简单,打包一个python项目只需一条命令,如下:

Pyinstaller.exe –F -i path/youricon.ico path/yourscript.py

命令过后,脚本就被打包成exe文件了,而且图标也换成你指定的ico图片了,是不是很便捷呀!

当然,你也可以不指定exe图标,此时,无需增加-i 参数,-F参数将脚本打包成单一的exe文件,一般使用该命令即可。

主要参数如下:参数含义

-F指定打包后只生成一个exe格式的文件

-D–onedir创建一个目录,包含exe文件,但会依赖很多文件(默认选项)

-c–console, –nowindowed使用控制台,×××面(默认)

-w–windowed, –noconsole使用窗口,无控制台

-p添加搜索路径,在指定的路径寻找对应的库。

-i添加生成程序的icon图标

-n为生成的exe起个名字

五报错及解决方法

安装完成后,打包程序报错:“failed to create process”

发生该报错的可能原因是:

1.python的安装路径有空格,比如安装在Program Files (x86)目录,pyinstaller版<3.4;

2.pyinstaller==3.4;

针对第一种情况,路径有空格,解决方法是:

在Python安装目录下的Scripts中找到pyinstaller-scripts.py打开,把第一行的路径加上引号,如#!d:\program files (x86)\python36\python.exe改为#!"d:\program files (x86)\python36\python.exe",解决问题。

针对第二种情况,pyinstaller已经是最新版本,即便python安装路径有空格,pyinstaller-scripts.py中解释器的路径也会被自动加上引号,一种可行的解决方法是:

把路径切换到python安装路径的scripts目录,执行python pyinstaller-script.py path/YourScript.py进行打包,即可解决问题。

六其他资源

关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。

python打包工具报错_Python打包发布神器—Pyinstaller相关推荐

  1. python打包工具报错_python打包生成exe报错

    如图所示 如果出现的是这个问题可以可以考虑以下方法 首先卸载原先下载的 Pyinstaller pip uninstall pyinstaller 再执行以下代码,去github上下载 pip ins ...

  2. python打包工具报错_Pyinstaller打包.py生成.exe的方法和报错总结

    Pyinstaller 打包.py生成.exe的方法和报错总结 简介 有时候自己写了个python脚本觉得挺好用想要分享给小伙伴,但是每次都要帮他们的电脑装个python环境.虽然说装一下也快,但是相 ...

  3. 【Hbuilder】Hbuilder 原生App-云打包,报错需要打包校验

    文章目录 一.前言 二.报错截图 三.解决: 一.前言 使用Hbuild uni-app开发完项目后,安装完App云打包,点击发行>原生App云打包,报错提示打包校验 二.报错截图 三.解决: ...

  4. python打包exe报错_python 程序打包为 windows 可执行程序 exe

    1,使用到的程序 1,python 2,pyinstaller 2,安装 pyinstaller pip install pyinstaller 3,安装可能出现的问题与报错 1:AttributeE ...

  5. python打包中文报错_cxfreeze打包python,飞一般的感觉

    总所周知,python因库多,语法优雅,深受开发者的喜爱. 于我来说,写一些小型程序,在不需要考虑太多问题的时候,python无疑是我的第一选择.而有的时候,虽然是小型程序,但我还是需要他们通用,即使 ...

  6. python打包中文报错,解决python3+Gooey使用pyinstaller打包时无法输出中文的问题

    问题出处 代码如下: # -*- coding: utf-8 -*- from gooey import Gooey, GooeyParser def run(keywords): print(key ...

  7. python时间函数报错_Python Day11-LEGB-global-时间函数

    1.LEGB规则对变量名进行作用域解析 我们已经知道了多个命名空间可以独立存在,而且可以在不同的层次上包含相同的变量名."作用域"定义了Python在哪一个层次上查找某个" ...

  8. python read函数报错_python 使用read_csv读取 CSV 文件时报错

    读取csv文件时报错 df = pd.read_csv('c:/Users/NUC/Desktop/成绩.csv' ) Traceback (most recent call last): File ...

  9. python全局变量赋值报错_python全局变量、回调函数

    1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...

最新文章

  1. 关于SWT开发的一个坑——Invalid thread access
  2. ES批量提交-RestHighLevelClient
  3. mysql查看表的两列_MySQL查询来计算表列中的0和1的数量,并在两列中显示?
  4. LeetCode MySQL 571. 给定数字的频率查询中位数
  5. 【转】通过身边小事解释机器学习是什么?
  6. python求奇数的乘积_Python中的推导式使用详解
  7. 从java库学设计模式_java I/O库的设计模式
  8. 【多目标优化求解】基于matlab布谷鸟算法多目标(成本+时间+质量)优化求解【含Matlab源码 118期】
  9. 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页...
  10. android上代码阅读软件,安卓代码阅读器app下载-android代码阅读器 安卓版v1.0.0-PC6安卓网...
  11. 2022下半年,系统架构师论文写作相关知识点
  12. 私有CA搭建并将HTTPS应用于Tomcat、Springboot
  13. 使用pygame实现音乐播放器(一)
  14. 2022年第四届长安杯电子取证竞赛-exe部分
  15. html中的阴影怎么使用,css 内阴影怎么做
  16. A Survey on Metaverse: the State-of-the-art,Technologies, Applications, and Challenges
  17. 如何自己手动修改win10磁贴背景颜色?
  18. 【转】美国50州气候及学校推荐
  19. java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。
  20. 客制供应商申请审批单和供应商导入api

热门文章

  1. Apache+tomcat的整合
  2. matlab命令fvtool,FVTool: a finite volume toolbox for Matlab
  3. 展示动图_DNF:多GIF动图展示,暗夜使者个性武器幻化推荐
  4. 帝国整站PHP源码,帝国cms 诗词整站源码
  5. 记录解决nginx的access.log持续变大问题
  6. Java中的数据结构
  7. 程序员一夜暴富捷径?不,别被轻易骗进“独角兽”
  8. 原子变量、锁、内存屏障,写得非常好!
  9. 不吹牛,这样的面试官才牛逼!
  10. 这几种思维模式,都是你的职业发展的绊脚石