最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3如何在Windows和Linux上打包

 更新時(shí)間:2020年02月25日 14:29:10   作者:沙振宇  
這篇文章主要介紹了Python3如何在Windows和Linux上打包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、嘮嘮叨叨

最近項(xiàng)目中需要Python的打包,看到網(wǎng)上也沒有很詳細(xì)的資料,于是做了一些示例程序。小小的研究了一下,Python如何在Windows和Linux上打包,并把程序源碼以及各個(gè)記錄上傳到Github上與大家分享。

2、背景

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

3、Python打包工具

今天沒時(shí)間研究cx_Freeze,先研究了一下PyInstaller。

3.1、py2exe

py2exe是一個(gè)將python轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具。不過,該可執(zhí)行程序,只能在相同的Windows系統(tǒng)下運(yùn)行,而且不適合Linux。果斷被我舍棄不在研究了。

3.2、cx_Freeze

cx_Freeze 是一個(gè)類似 py2exe 的工具,但 cx_Freeze 可以在 linux 下可以直接執(zhí)行的 ELF 格式的二進(jìn)制可執(zhí)行文件,也可以在windows上執(zhí)行。
cx_Freeze的作用可以讓python程序可以脫離python運(yùn)行環(huán)境,在沒有安裝python的微型linux系統(tǒng)(例如cdlinux、tinycore等)里,方便地運(yùn)行你的python程序。

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

3.3、PyInstaller

號稱是目前最全面的打包程序,然后我看了一下程序更新時(shí)間。一看是10天前,嗯,不錯(cuò),就它了。
程序簡介:https://pypi.org/project/PyInstaller/

看了一下參數(shù)介紹如下:

4、Windows打包

4.1、單個(gè)文件打包

4.1.1、核心源碼

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例1,單個(gè)文件打包
 “pyinstaller -F(單個(gè)可執(zhí)行文件) 程序源 -n 程序名 -w(去掉控制臺窗口,這在GUI界面時(shí)非常有用) -i 圖標(biāo).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("按任意鍵退出...")

4.1.2、程序運(yùn)行

4.1.3、打包

pyinstaller -F test1/Demo_Test1_Python.py

4.1.4、打包后效果

4.2、多個(gè)文件打包

4.2.1、核心源碼

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例2,多個(gè)文件打包
 “pyinstaller -F(單個(gè)可執(zhí)行文件) 程序源 -n 程序名 -w(去掉控制臺窗口,這在GUI界面時(shí)非常有用) -i 圖標(biāo).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("*  兩個(gè)排序  *")
 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("按任意鍵退出...")

4.2.2、程序運(yùn)行

4.2.3、打包

pyinstaller -F test2/Demo_Test2_Python.py

4.2.4、打包后效果

4.3、多層文件打包

4.3.1、核心源碼

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例3,多層文件打包
 “pyinstaller -F(單個(gè)可執(zhí)行文件) 程序源 -n 程序名 -w(去掉控制臺窗口,這在GUI界面時(shí)非常有用) -i 圖標(biāo).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("*  兩個(gè)排序  *")
 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("按任意鍵退出...")

4.3.2、程序運(yùn)行

4.3.3、打包

pyinstaller -F test3/Demo_Test3_Python.py

4.3.4、打包后效果

4.4、多層文件打包(加圖標(biāo)該可執(zhí)行程序名稱)

4.4.1、核心源碼

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例4,多層文件打包加圖標(biāo),修改程序名
 “pyinstaller -F(單個(gè)可執(zhí)行文件) 程序源 -n 程序名 -w(去掉控制臺窗口,這在GUI界面時(shí)非常有用) -i 圖標(biāo).ico”
 “-p 表示自定義需要加載的類路徑(一般情況下用不到)”
 “pyinstaller -F test4/Demo_Test4_Python.py -n Test4 -i test4/test4.ico”
"""
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("*  兩個(gè)排序  *")
 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("按任意鍵退出...")

4.4.2、程序運(yùn)行

4.4.3、打包

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

4.4.4、打包后效果

5、Linux打包

5.1、多層文件打包

5.1.1、核心源碼

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create Time: 2020-1-20
Info: Python打包示例5,多層文件打包修改程序名 linux打包
 “pyinstaller -F(單個(gè)可執(zhí)行文件) 程序源 -n 程序名 -w(去掉控制臺窗口,這在GUI界面時(shí)非常有用) -i 圖標(biāo).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("*  兩個(gè)排序  *")
 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("按任意鍵退出...")

5.1.2、程序運(yùn)行

5.1.3、打包后效果

5.2、遇到的錯(cuò)誤,以及解決方案

5.2.1、錯(cuò)誤1(找不到pyinstaller)

我是用 pip install 安裝的pyinstaller,于是先find了一下,找到了此命令,于是就做了個(gè)軟鏈接。

解決方案,直接將安裝目錄下面的pyinstaller包作為軟鏈接到/usr/bin下

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

5.2.2、錯(cuò)誤2(rebuild your Python with --enable-shared


這種錯(cuò)誤,人家已經(jīng)把解決方案說出來了,就是需要重新編譯嘛,那我們就按照他的來就OK了。先找到源碼按照的目錄,并按照以下命令操作。

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

5.2.3、錯(cuò)誤3(找不到 libpython3.6m.so.1.0)


解決方案,在安裝目錄找到此文件,并拷貝到/usr/lib64目錄下:

6、Github源碼分享

https://github.com/ShaShiDiZhuanLan/Demo_Install_Python

到此這篇關(guān)于Python3如何在Windows和Linux上打包的文章就介紹到這了,更多相關(guān)Python3 Linux打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實(shí)現(xiàn)

    matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實(shí)現(xiàn)

    這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實(shí)現(xiàn) ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解Python中__new__方法的作用

    詳解Python中__new__方法的作用

    Python類中有些方法名、屬性名的前后都添加__雙下畫線,這種方法、屬性通常屬于Python的特殊方法和特殊屬性。本文將聊聊構(gòu)造方法__new__實(shí)際程序的應(yīng)用場景,感興趣的可以了解一下
    2022-03-03
  • windows下安裝Python和pip終極圖文教程

    windows下安裝Python和pip終極圖文教程

    本文希望提供傻瓜式的教程,能夠令讀者成功安裝Python和pip,需要的朋友可以參考下
    2017-03-03
  • PyTorch 普通卷積和空洞卷積實(shí)例

    PyTorch 普通卷積和空洞卷積實(shí)例

    今天小編就為大家分享一篇PyTorch 普通卷積和空洞卷積實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程

    Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程

    xhEditor是基于jQuery的Web端文本編輯器,基本的圖片上傳等功能也都帶有,這里我們就來看一下Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程
    2016-06-06
  • Python使用tkinter實(shí)現(xiàn)小時(shí)鐘效果

    Python使用tkinter實(shí)現(xiàn)小時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了Python使用tkinter實(shí)現(xiàn)小時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Pytorch之finetune使用詳解

    Pytorch之finetune使用詳解

    今天小編就為大家分享一篇Pytorch之finetune使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • pytorch實(shí)現(xiàn)手寫數(shù)字圖片識別

    pytorch實(shí)現(xiàn)手寫數(shù)字圖片識別

    這篇文章主要為大家詳細(xì)介紹了pytorch實(shí)現(xiàn)手寫數(shù)字圖片識別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Python如何爬取51cto數(shù)據(jù)并存入MySQL

    Python如何爬取51cto數(shù)據(jù)并存入MySQL

    這篇文章主要介紹了Python如何爬取51cto數(shù)據(jù)并存入MySQL,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • vim自動補(bǔ)全插件YouCompleteMe(YCM)安裝過程解析

    vim自動補(bǔ)全插件YouCompleteMe(YCM)安裝過程解析

    這篇文章主要介紹了vim自動補(bǔ)全插件YouCompleteMe(YCM)安裝過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評論

大荔县| 融水| 武定县| 宝鸡市| 洮南市| 峨眉山市| 富顺县| 噶尔县| 桦南县| 西平县| 大方县| 岑巩县| 雷波县| 淳化县| 阿拉尔市| 通海县| 云阳县| 乃东县| 台南县| 广河县| 山阴县| 南和县| 海原县| 蒙山县| 青铜峡市| 剑河县| 莱阳市| 孝义市| 博湖县| 长宁县| 开化县| 镇宁| 盈江县| 茌平县| 肥西县| 兴海县| 青浦区| 类乌齐县| 衡南县| 西城区| 汕头市|