iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >将python程序变成可执行程序
  • 338
分享到

将python程序变成可执行程序

pythonubuntulinux 2023-10-04 12:10:57 338人浏览 安东尼

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

摘要

文章目录 前言一、Pyinstall是什么?二、使用步骤1.ubuntu环境下使用(1)安装(2)打包程序(3)使用 2.在windows环境下使用(1)安装(2)打包程序(3)使用

文章目录


前言

在日常开发的过程,可能会用python写一些小工具,给其他非开发人员使用。为了让更多不懂编程的人使用方便,往往都会直接打包成可执行程序。以下介绍两种平台的程序打包方法,分别为linux下和windows下。打包工具我们采用的是pyinstall


一、Pyinstall是什么?

PyInstaller是一个Python打包工具,它可以将Python代码打包成可执行文件,同时可以在不同的操作系统上进行分发。使用PyInstaller可以避免Python程序的依赖关系问题,这使得Python程序的分发更加方便和可靠。PyInstaller支持多种操作系统,包括Windows、Linux和MacOS等。

二、使用步骤

1.ubuntu环境下使用

(1)安装

  • 新建一个conda环境,名为pyinstall。这样做也是为了方便与其他环境隔离
conda create -n pyinstall python=3.8
  • 激活环境
source activate pyinstall
  • 安装pyinstaller包
python -m pip install pyinstaller

(2)打包程序

  • 在终端下新建一个文件,并把打印hello world写入到这个文件中
touch demo.py && echo "print(\"hello world\")" >> demo.py
  • 输入下面代码,将其打包成linux可执行程序
pyinstaller --onefile --noconsole demo.py

会在demo.py的同级目录下生成各种文件
在这里插入图片描述

(3)使用

  • 最终会在dist下生成可执行文件,进入到这个目录,运行可执行文件即可
./demo

可以看到将hello world打印出来
在这里插入图片描述

2.在windows环境下使用

(1)安装

  • 在菜单栏里找到Anacodna3,点击打开终端Anaconda Prompt
    在这里插入图片描述

  • 先输入下面命令,退出当前base环境。

conda deactivate

在这里插入图片描述

  • 创建一个新的打包的环境,此处名为pyinstall
conda create -n pyinstaller python=3.8

在这里插入图片描述

  • 安装pyinstaller
python -m pip install pyinstaller

在这里插入图片描述

(2)打包程序

  • 在文件夹中新建一个demo.py。把下面示例代码填写进去。实现功能很简单在命令控制台打印“hello world”。后面增加了一句input('Press Enter to exit...'),其原因是如果没有,程序在执行完hello world后会自动关闭控制台窗口。
# 打印hello worldprint("hello world")input('Press Enter to exit...')

在这里插入图片描述

  • Anaconda Prompt中的代码目录下输出如下命令,即可在dist下生成exe文件。
pyinstaller --onefile --console demo.py

在这里插入图片描述

(3)使用

  • 双击demo.exe就会打开命令控制台看到打印信息,回车会关闭窗口
    在这里插入图片描述

三、其他

Pyinstaller包的其他功能,读者可以自行在安装包后输入命令寻求说明帮助

pyinstaller -h

下面罗列部分参数的说明

位置参数:
scriptname 要处理的脚本文件的名称,或者恰好一个 .spec 文件。如果指定了 .spec 文件,则大多数选项都是不必要的,并且将被忽略。

可选参数:
-h, --help 显示帮助信息并退出
-v, --version 显示程序版本信息并退出。
–distpath DIR 存放打包应用的路径(默认为./dist)
–workpath WORKPATH 存放所有临时工作文件,.log,.pyz等的路径(默认为./build)
-y, --noconfirm 在不要求确认的情况下替换输出目录(默认为SPECPATH/dist/SPECNAME)
–upx-dir UPX_DIR UPX工具的路径(默认在执行路径中搜索)
-a, --ascii 不包含Unicode编码支持(默认情况下如果可用则包括)
–clean 在构建之前清除PyInstaller缓存并删除临时文件。
–log-level LEVEL 在构建时控制台消息的详细程度。LEVEL可以是TRACE、DEBUG、INFO、WARN、DEPRECATION、ERROR、FATAL之一(默认为INFO)。也可以通过设置PYI_LOG_LEVEL环境变量来覆盖它。

要生成的内容:
-D, --onedir 创建一个包含可执行文件的单个文件夹捆绑包(默认)
-F, --onefile 创建一个单个文件的捆绑可执行文件。
–specpath DIR 存储生成的spec文件的文件夹(默认为当前目录)
-n NAME, --name NAME 分配给打包应用和spec文件的名称(默认为第一个脚本的基本名称)

打包内容,搜索路径:
–add-data
需要添加到可执行文件中的额外非二进制文件或文件夹。路径分隔符是平台特定的,os.pathsep(在Windows上是;,在大多数Unix系统上是:)被使用。此选项可以多次使用。
–add-binary
需要添加到可执行文件中的额外二进制文件。有关更多详细信息,请参见 --add-data 选项。此选项可以多次使用。
-p DIR, --paths DIR 用于搜索导入的路径(类似于使用PYTHONPATH)。可以使用多个路径,用“:”分隔,或多次使用此选项。相当于在spec文件中提供 pathex 参数。
–hidden-import MODULENAME, --hiddenimport MODULENAME
命名在脚本代码中不可见的导入。此选项可以多次使用。
–collect-submodules MODULENAME
从指定的包或模块中收集所有子模块。此选项可以多次使用。
–collect-data MODULENAME, --collect-datas MODULENAME
从指定的包或模块中收集所有数据。此选项可以多次使用。
–collect-binaries MODULENAME
从指定的包或模块中收集所有二进制文件。此选项可以多次使用。
–collect-all MODULENAME
从指定的包或模块中收集所有子模块,数据文件和二进制文件。此选项可以多次使用。
–copy-metadata PACKAGENAME
复制指定包的元数据。此选项可以多次使用。
–recursive-copy-metadata PACKAGENAME
复制指定包及其所有依赖项的元数据。此选项可以多次使用。
–additional-hooks-dir HOOKSPATH
用于搜索钩子的额外路径。此选项可以多次使用。
–runtime-hook RUNTIME_HOOKS
自定义运行时钩子文件的路径。运行时钩子是与可执行文件捆绑的代码,在任何其他代码或模块之前执行,以设置运行时环境的特殊功能。此选项可以多次使用。
–exclude-module EXCLUDES
可选的模块或包(Python名称,而不是路径名称),将被忽略(就像未找到一样)。此选项可以多次使用。
–splash IMAGE_FILE (实验性的)在应用程序中添加一个带有IMAGE_FILE图像的启动画面。启动画面可以在解压缩过程中显示进度更新。

如何生成:
-d 或 --debug 选项可以提供调试冻结应用程序的帮助。可以多次使用该选项选择以下几个选项之一:
all:所有以下选项。
-imports:指定-v选项到底层的Python解释器,导致每次初始化模块时打印一条消息,显示从哪个地方(文件名或内置模块)加载。请参见https://docs.python.org/3/using/cmdline.html#id4。
-bootloader:告诉引导加载程序在初始化和启动捆绑应用程序时发出进度消息。用于诊断缺少导入的问题。
-noarcHive:将所有冻结的Python源文件存储为存档文件而不是存储在结果输出目录中的文件。
–python-option PYTHON_OPTION 选项可以指定在运行时传递给Python解释器的命令行选项。目前支持“v”(相当于“–debug imports”),“u”和“W ”。
-s 或 --strip 选项可以对可执行文件和共享库应用符号表剥离操作(不推荐在Windows上使用)。
–noupx 选项可以禁用 UPX,即使它可用(在Windows和Unix系统之间的工作方式不同)。
–upx-exclude FILE 选项可以在使用 upx 时防止二进制文件被压缩。如果 upx 在压缩期间破坏某些二进制文件,则通常使用此选项。FILE 是二进制文件的文件名,不包括路径。可以多次使用此选项。

Windows和Mac OS X特定选项:
-c,–console,–nowindowed
打开标准I/O的控制台窗口(默认)。在Windows上,如果第一个脚本是’.pyw’文件,则此选项无效。
-w,–windowed,–noconsole
Windows和Mac OS X:不为标准I/O提供控制台窗口。在Mac OS上,这也会触发构建Mac OS .app捆绑包。在Windows上,如果第一个脚本是’.pyw’文件,则此选项会自动设置。此选项在*NIX系统上被忽略。
-i ,–icon
FILE.ico:将图标应用于Windows可执行文件。FILE.exe,ID:从exe中提取具有ID的图标。FILE.icns:将图标应用于Mac OS上的.app捆绑包。如果输入的图像文件不是平台格式(Windows上的ico,Mac上的icns),PyInstaller将尝试使用Pillow将图标转换为正确的格式(如果安装了Pillow)。使用“NONE”不应用任何图标,从而使操作系统显示一些默认设置(默认值:应用PyInstaller的图标)。此选项可以多次使用。
–disable-windowed-traceback
在窗口(noconsole)模式下禁用未处理异常的回溯转储(仅适用于Windows和macOS),并显示一条消息指出此功能已被禁用。

Windows 特定选项:
–version-file FILE 从 FILE 中添加版本资源到可执行文件中。
-m , --manifest
将 MANIFEST 文件或 XML 添加到可执行文件中。
–no-embed-manifest 生成一个外部的 .exe.manifest 文件而不是将 MANIFEST 嵌入到可执行文件中。仅适用于 onedir 模式;在 onefile 模式下,不论此选项如何,MANIFEST 都始终被嵌入。
-r RESOURCE, --resource RESOURCE
将资源添加或更新到 Windows 可执行文件中。RESOURCE 是一个到四个条目,格式为 FILE[,TYPE[,NAME[,LANGUAGE]]]。FILE 可以是数据文件或 exe/dll。对于数据文件,至少必须指定 TYPE 和 NAME。LANGUAGE 默认为 0 或可以指定为通配符 * 以更新给定类型和名称的所有资源。对于 exe/dll 文件,如果省略或将 TYPE、NAME 和 LANGUAGE 指定为通配符 *,则将从 FILE 添加/更新所有资源到最终可执行文件中。此选项可以多次使用。
–uac-admin 使用此选项将创建一个请求启动时提升权限的 MANIFEST。
–uac-uiaccess 使用此选项允许升级的应用程序在远程桌面上使用。

总结

本文仅仅简单介绍了pyinstaller在ubuntu和windows下打包python程序为可执行程序的方法,不过并未介绍在ubuntu开发环境下实现打包win10可执行文件exe的方法,如果要这么做,需要进行交叉编译,即在 Ubuntu 中生成适用于 Windows 的二进制文件。为此,你需要安装交叉编译工具链和适用于 Windows 的 Python。需要通过安装wine来安装适用于windows版本的python,需要修改“demo.spec”文件,使他包含适用于Windows的选项。这些步骤把问题复杂化了,远不如直接在对应平台上进行打包操作

来源地址:https://blog.csdn.net/PellyKoo/article/details/129375361

--结束END--

本文标题: 将python程序变成可执行程序

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 将python程序变成可执行程序
    文章目录 前言一、Pyinstall是什么?二、使用步骤1.ubuntu环境下使用(1)安装(2)打包程序(3)使用 2.在windows环境下使用(1)安装(2)打包程序(3)使用 ...
    99+
    2023-10-04
    python ubuntu linux
  • Python将脚本程序转变为可执行程序的实现
    类似Java打包操作,若不想让人看到Python程序内部逻辑,也可将其转换为exe可执行文件首先自己写一个Python程序,如下: print("start running..."...
    99+
    2023-02-15
    Python脚本转变为可执行程序 Python 为可执行程序
  • 怎么将c语言程序打包成exe可执行程序
    本文章向大家介绍怎么将c语言程序打包成exe可执行程序,主要包括怎么将c语言程序打包成exe可执行程序的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。C语言是什么C语言是一门面向过程的、抽象化...
    99+
    2023-06-06
  • 如何将Python程序编译转换成Windows可执行程序的方案
    这篇文章主要介绍“如何将Python程序编译转换成Windows可执行程序的方案”,在日常操作中,相信很多人在如何将Python程序编译转换成Windows可执行程序的方案问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-17
  • 怎么将java代码生成可执行程序
    要将Java代码生成可执行程序,可以按照以下步骤进行操作: 编写Java代码文件:使用文本编辑器(如Notepad++、Subl...
    99+
    2023-10-24
    java
  • python怎么打包成可执行程序
    要将Python脚本打包成可执行程序,可以使用PyInstaller或cx_Freeze等工具。下面是使用PyInstaller的步...
    99+
    2023-09-15
    python
  • python将写好的程序打包成exe可执行文件
    目录1、安装pyinstaller2、使用pyinstaller 打包程序2.1 开始打包2.2 查收exe文件前言: 首先 如果你的python是64位的编译器,那么打包的结果就只...
    99+
    2024-04-02
  • python 将python程序编译成可
    一、使用pyinstaller 完成对python程序到可执行文件转换. 官网: http://www.pyinstaller.org/ 下载与操作系统相匹配的版本. 目前pyinstaller 只支持2.3 - 2.7。 不支持pytho...
    99+
    2023-01-31
    编译成 程序 python
  • pyinstaller将python程序打包为可执行文件
    目录前言pyinstaller简介pyinstaller下载pyinstaller使用准备好程序代码打包程序小结前言 对于专业的python程序员来说,python打包工具或许用得并...
    99+
    2024-04-02
  • vb怎么生成可执行程序
    要将VB项目生成为可执行程序,您可以按照以下步骤操作:1. 打开您的VB项目。2. 在VB项目中,选择“文件”菜单,然后选择“发布”...
    99+
    2023-09-08
    vb
  • python怎么封装成可执行的小程序
    要将Python代码封装成可执行的小程序,可以使用以下方法: 使用pyinstaller:pyinstaller是一个可以将Pyt...
    99+
    2024-04-09
    python
  • 【利用pycharm将python程序生成.exe执行文件】
    Python 学习笔记 一只小白自学Python的成长史 文章目录 Python 学习笔记一、安装pyinstaller包二、应用步骤2.1 在包中下载pyinstaller2.2 在The...
    99+
    2023-10-03
    python pycharm 开发语言
  • pycharm如何打包成可执行程序
    可以将 pycharm 应用程序打包为可执行程序:1. 导出项目可执行文件,2. 准备 main 方法,3. 指定主类,4. 创建 manifest 文件,5. 使用 jar 工具编译并...
    99+
    2024-04-19
    pycharm
  • 如何把python程序打包成可执行文件
    要将Python程序打包成可执行文件,可以使用PyInstaller工具。下面是使用PyInstaller的步骤:1. 首先,确保你...
    99+
    2023-09-22
    python
  • Python程序打包成可执行文件exe详解流程
    今天给大家分享个可视化 Python 打包神器,欢迎点赞支持,文末提供技术交流群。 1、 什么是 auto-py-to-exe auto-py-to-exe 是一个用于将Python...
    99+
    2024-04-02
  • 将python程序转换成exe程序
    将python程序转换成exe.一、 先安装python1、首先访问http://www.python.org/download/去下载最新的python版本。2、安装下载包,一路next。3、为计算机添加安装目录搭到环境变量,如图把pyt...
    99+
    2023-01-31
    程序 转换成 python
  • Python程序打包成可执行文件exe流程是什么
    这篇文章主要讲解了“Python程序打包成可执行文件exe流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python程序打包成可执行文件exe流程是什么”吧!1、 什么是 auto...
    99+
    2023-06-25
  • Python程序的执行过程
    原文出处:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html1、C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计算机是不能识别高级语言的,所以,必须要通过...
    99+
    2023-01-31
    过程 程序 Python
  • 如何将Java程序打包成一个可执行的jar文件包
    如何将Java程序打包成一个可执行的jar文件包?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先要确认自己写的程序有没有报错。第一次我写的是Web Project到现在,...
    99+
    2023-05-31
    java jar
  • 如何将Apache和Laravel应用程序打包成Java可执行文件?
    在软件开发过程中,我们经常需要将应用程序打包成可执行文件以便于部署和运行。对于Java开发者来说,Java可执行文件是最常见的一种可执行文件格式。但是,如果我们想将Apache和Laravel应用程序打包成Java可执行文件,该怎么办呢?...
    99+
    2023-10-15
    打包 apache laravel
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作