iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >windows、linux下打包Python3程序详细方法
  • 778
分享到

windows、linux下打包Python3程序详细方法

摘要

最近项目中需要python的打包,看到网上也没有很详细的资料,于是做了一些示例程序。研究了一下,Python如何在windows和linux上打包 背景 Python版本:3.6. Windows版本:Windows

最近项目中需要python的打包,看到网上也没有很详细的资料,于是做了一些示例程序。研究了一下,Python如何在windowslinux上打包

背景

Python版本:3.6.

Windows版本:Windows 10 家庭中文版 64-bit (10.0, Build 18362) (18362.19h1_release.190318-1202)

Linux版本:Centos7.

Python打包工具

今天没时间研究cx_Freeze,先研究了一下PyInstaller。

py2exe

py2exe是一个将python转换成windows上的可独立执行的可执行程序(*.exe)的工具。不过,该可执行程序,只能在相同的Windows系统下运行,而且不适合Linux。果断被我舍弃不在研究了。

cx_Freeze

cx_Freeze 是一个类似 py2exe 的工具,但 cx_Freeze 可以在 linux 下可以直接执行的 ELF 格式的二进制可执行文件,也可以在windows上执行。

cx_Freeze的作用可以让python程序可以脱离python运行环境,在没有安装python的微型linux系统(例如cdlinux、tinycore等)里,方便地运行你的python程序。

程序简介:https://pypi.org/project/cx-Freeze/5.0/

PyInstaller

号称是目前最全面的打包程序,然后我看了一下程序更新时间。一看是10天前,嗯,不错,就它了。

程序简介:Https://pypi.org/project/PyInstaller/

看了一下参数介绍如下:

windows、linux下打包Python3程序详细方法

Windows打包Python程序实例

1、单个文件打包

核心源码


#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例1,单个文件打包
 “pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico”
 “pyinstaller -F test1/Demo_Test1_Python.py”
"""
def bubble_sort(arr):
 """
 冒泡排序
 :param arr:
 :return:
 """
 for i in range(1, len(arr)):
  for j in range(0, len(arr)-i):
   if arr[j] > arr[j+1]:
    arr[j], arr[j + 1] = arr[j + 1], arr[j]
 return arr
if __name__ == '__main__':
 test = [1, 8, 123, 18, 99, 300]
 print("************************************")
 print("*    冒泡排序    *")
 print("************************************")
 print("源列表:", test)
 result = bubble_sort(test)
 print("排序后:", result)
 print("************************************")
 input("按任意键退出...")

程序运行

windows、linux下打包Python3程序详细方法

打包方法


pyinstaller -F test1/Demo_Test1_Python.py

打包后效果

windows、linux下打包Python3程序详细方法

多个文件打包

核心源码


#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例2,多个文件打包
 “pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico”
 “pyinstaller -F test2/Demo_Test2_Python.py”
"""
from test2.Demo_bubble_sort import bubble_sort
from test2.Demo_heap_sort import heap_sort
if __name__ == '__main__':
 test1 = [1, 8, 123, 18, 99, 300]
 test2 = test1[:]
 print("************************************")
 print("*    两个排序    *")
 print("************************************")
 print("列表1 id:", id(test1))
 print("列表2 id:", id(test2))
 print("源列表1:", test1)
 print("源列表2:", test2)
 result1 = bubble_sort(test1)
 result2 = heap_sort(test1)
 print("冒泡后:", result1)
 print("堆排后:", result2)
 print("************************************")
 input("按任意键退出...")

程序运行

windows、linux下打包Python3程序详细方法

打包命令


pyinstaller -F test2/Demo_Test2_Python.py

打包后效果

windows、linux下打包Python3程序详细方法

多层文件打包

核心源码


#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例3,多层文件打包
 “pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico”
 “pyinstaller -F test3/Demo_Test3_Python.py”
"""
from test3.sort.Demo_bubble_sort import bubble_sort
from test3.sort.Demo_heap_sort import heap_sort
from test3.Demo_test import Test
if __name__ == '__main__':
 test1 = [1, 8, 123, 18, 99, 300]
 test2 = test1[:]
 print("************************************")
 print("*    两个排序    *")
 print("************************************")
 print("列表1 id:", id(test1))
 print("列表2 id:", id(test2))
 print("源列表1:", test1)
 print("源列表2:", test2)
 result1 = bubble_sort(test1)
 result2 = heap_sort(test1)
 print("冒泡后:", result1)
 print("堆排后:", result2)
 Test.run()
 print("************************************")
 input("按任意键退出...")

程序运行

windows、linux下打包Python3程序详细方法

打包命令


pyinstaller -F test4/Demo_Test4_Python.py -n Test4 -i test4/test4.ico

打包后效果

windows、linux下打包Python3程序详细方法

Python Linux打包实例

多层文件打包

核心源码


#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例5,多层文件打包修改程序名 linux打包
 “pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico”
 “-p 表示自定义需要加载的类路径(一般情况下用不到)”
 “pyinstaller -F Demo_Test5_Python.py -n Test5”
"""
from sort.Demo_bubble_sort import bubble_sort
from sort.Demo_heap_sort import heap_sort
from Demo_test import Test
if __name__ == '__main__':
 test1 = [1, 8, 123, 18, 99, 300]
 test2 = test1[:]
 print("************************************")
 print("*    两个排序    *")
 print("************************************")
 print("列表1 id:", id(test1))
 print("列表2 id:", id(test2))
 print("源列表1:", test1)
 print("源列表2:", test2)
 result1 = bubble_sort(test1)
 result2 = heap_sort(test1)
 print("冒泡后:", result1)
 print("堆排后:", result2)
 Test.run()
 print("************************************")
 input("按任意键退出...")

程序运行

windows、linux下打包Python3程序详细方法

打包后效果

windows、linux下打包Python3程序详细方法

遇到的错误,以及解决方案

错误1(找不到pyinstaller)

我是用 pip install 安装的pyinstaller,于是先find了一下,找到了此命令,于是就做了个软链接。

解决方案,直接将安装目录下面的pyinstaller包作为软链接到/usr/bin下


ln -s /usr/local/python3.6.8/bin/pyinstaller /usr/bin/pyinstaller3.

错误2(rebuild your Python with --enable-shared)

windows、linux下打包Python3程序详细方法

这种错误,人家已经把解决方案说出来了,就是需要重新编译嘛,那我们就按照他的来就OK了。先找到源码按照的目录,并按照以下命令操作。


./configure --prefix=/usr/local/python3.6.8(需要安装的目录) --enable-shared --with-ssl
make
make install

错误3(找不到 libpython3.6m.so.1.0)

解决方案,在安装目录找到此文件,并拷贝到/usr/lib64目录下:

本文主要讲解了如何在windows与linux下打包Python3程序的详细方法,更多关于打包Python程序的知识请查看下面的相关链接

--结束END--

本文标题: windows、linux下打包Python3程序详细方法

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

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

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

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

下载Word文档
猜你喜欢
  • Linux 下通过 tar 包方式安装 MySQL,详细教程
    写在前面:目前网络上大多数的安装教程采用的是 rpm 的方式,此种方式是需要虚拟机联网完成的,我介绍的是使用 tar 包的方式安装 mysql5.7 的方法。 首先要注意的一点是,在输入命令的时候你一定要注意你是在哪个文件夹下输入的命令,...
    99+
    2023-09-28
    linux mysql 数据库
  • uniapp打包成微信小程序的详细过程
    目录一、HbuilderX打包二、发行三、打开小程序体验注意 总结一、HbuilderX打包 选中项目-点击发行(U)- 小程序-(微信仅适用于uniapp)(W) 二、...
    99+
    2024-04-02
  • Windows下sentry接入C/C++程序的详细过程
    目录sentry简介sentry的作用sentry-native是什么基于C/C++的native版,SDK编译sentry-SDK接入本地工程接入我们自己的工程关于配置自定义配置利...
    99+
    2024-04-02
  • C#安装程序中打包MSDE的详细步骤
    这篇文章主要讲解了“C#安装程序中打包MSDE的详细步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#安装程序中打包MSDE的详细步骤”吧!在Visual Studio 200...
    99+
    2023-06-17
  • Windows 平台下,Python 打包接口程序的安装与配置详解。
    Windows 平台下,Python 打包接口程序的安装与配置详解 Python 作为一种高级编程语言,具有易学易用、开源免费、跨平台等优点,越来越受到广大开发者的青睐。而在实际项目开发中,为了更好地封装代码、管理依赖库、方便部署等原因,我...
    99+
    2023-09-09
    打包 接口 windows
  • Java jar打包成exe应用程序的详细步骤
    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行 前言 近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,...
    99+
    2024-04-02
  • Linux服务器VPS的Windows DD包详细的制作教程
    说明:之前Vicer大佬制作出了VPS全自动DD安装Windows脚本,让我们很多喜欢在VPS安装Windows的人方便了许多,不过dd前必须得有一个dd包,这里就说下Windows...
    99+
    2024-04-02
  • 通过IDEA将java程序或者项目打包为jar包(详细步骤)
    通过IDEA将java程序或者项目打包为jar包 文章目录 目录 文章目录 一、使用java语言,编写一个字典(Dict)Demo 二、将Dict程序打包为jar包 一、使用java语言,编写一个字典(Dic...
    99+
    2023-09-01
    java intellij-idea jar
  • Linux下二进制源码包安装mysql的详细过程
    这篇文章主要介绍“Linux下二进制源码包安装mysql的详细过程 ”,在日常操作中,相信很多人在Linux下二进制源码包安装mysql的详细过程 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下二...
    99+
    2023-06-13
  • 二维码编程算法的Python打包程序详解
    二维码已经成为了现代生活中不可或缺的一部分,我们可以在商场、超市、地铁等地方看到各种各样的二维码,它们可以让我们更加便捷地获取信息。而二维码的生成,也是一项非常重要的技术。本文将详细介绍二维码编程算法的Python打包程序,以便于大家深入...
    99+
    2023-08-26
    打包 编程算法 二维码
  • windows下择打开文件使用的默认应用程序的方法
    我们用序越装越多,有时候同类的应用程序装多了,虽然打开一个文件的方法变多了,但是有时候默认打开所使用的软件却并非自己最想选择的,那么应该如何更改默认使用的应用程序呢?今天小编找到了方法,记录如下文。 1、打开控制面板,找...
    99+
    2023-06-14
    windows默认打开方式 选择默认打开方式 文件 应用程序 默认 方法
  • python加密打包程序的方法是什么
    这篇文章主要介绍“python加密打包程序的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python加密打包程序的方法是什么”文章能帮助大家解决问题。python加密打包程序加密方式:将...
    99+
    2023-07-06
  • Windows 平台下,Python 打包接口程序的最佳实践是什么?
    在 这是一个经常被提到的问题,因为当我们想要将 Python 程序打包成可执行文件时,我们需要考虑很多因素,如可移植性、易于部署、代码保护等等。 在本文中,我们将介绍如何使用 PyInstaller 来打包 Python 接口程序,并展示一...
    99+
    2023-09-09
    打包 接口 windows
  • Windows系统远程控制Linux系统的详细图文方法介绍
    远程控制因为克服了地域的限制,所以在网络管理、远程技术支持、远程交流、远程办公等领域有着非常广泛的应用。Windows之间的远程控制大家都驾轻就熟了,今天笔者给大家介绍十分专业实用的Windows远程控制linux。 基...
    99+
    2023-05-26
    Windows 远程控制 Linux系统 系统 Linux 图文 方法
  • vue项目打包并部署到Linux服务器的详细过程
    目录一、打包vue前端项目二、安装nginx1.下载及安装2.启动程序3.其他命令三、利用WinSCP传输文件四、配置nginx1.修改服务器端口2.修改dist存放路径3.完整配置...
    99+
    2023-01-31
    vue项目怎么部署 vue打包自动部署 vue怎么部署
  • Linux系统下文件的压缩、打包与解压方法
    这篇文章主要介绍“Linux系统下文件的压缩、打包与解压方法”,在日常操作中,相信很多人在Linux系统下文件的压缩、打包与解压方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统下文件的压缩、打...
    99+
    2023-06-10
  • SpringBoot超详细讲解集成Flink的部署与打包方法
    目录一、SpringBoot集成Flink二、FlinkTask写法调整三、打包插件四、Flink的上传与运行总结一、SpringBoot集成Flink 其实没什么特别的,就把Fli...
    99+
    2024-04-02
  • Linux下打包PHP应用程序:学习Bash脚本的必要性。
    Linux下打包PHP应用程序:学习Bash脚本的必要性 在Linux下开发和部署PHP应用程序时,打包是一个非常重要的环节。打包可以将所有的代码、配置文件、依赖库等打包成一个可执行的文件,方便部署和移植。而打包的过程中,Bash脚本是一个...
    99+
    2023-11-06
    linux 打包 bash
  • 微信小程序打包插件开发的方法
    今天小编给大家分享一下微信小程序打包插件开发的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。如果你看过文档,相信你一定知...
    99+
    2023-06-26
  • Linux下的ASP应用程序打包:如何让Unix用户也能享受?
    ASP(Active Server Pages)是一种基于Microsoft的Web开发技术,常用于Windows服务器上的Web应用程序。然而,随着Linux操作系统在服务器领域的普及,越来越多的Web开发人员开始将ASP应用程序迁移到...
    99+
    2023-06-01
    linux 打包 unix
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作