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

Python項(xiàng)目打包成二進(jìn)制的方法

 更新時(shí)間:2020年12月30日 16:50:00   作者:dwBurning  
這篇文章主要介紹了Python項(xiàng)目打包成二進(jìn)制的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

Python項(xiàng)目打包

python本身是一種腳本語(yǔ)音,發(fā)布的話,直接發(fā)布源代碼就可以了,但是,可能有些公司并不想發(fā)布源代碼,那么,就涉及到打包了,網(wǎng)上有很的打包教程,其實(shí)我也沒(méi)有認(rèn)真去研究,因?yàn)槲抑幌牒?jiǎn)單點(diǎn),所以,我打算直接編譯成pyc二進(jìn)制文件來(lái)發(fā)布,就可以了。

問(wèn)題

編譯成二進(jìn)制文件(*.pyc)之后,文件名都變了,模塊之間怎么引用?
網(wǎng)上的例子,大都是對(duì)單個(gè)文件編譯的介紹,對(duì)整個(gè)目錄編譯的話,也都是輸出到相應(yīng)的文件夾下,需要單獨(dú)抽取出來(lái),發(fā)布。

解決問(wèn)題

一般編譯之后的文件命名為:比如我的源文件為test.py,編譯后輸出到__pycache__文件夾下test.cpython-37.pyc,要保持模塊引用不改變,那么必須在編譯之后重命名為test.pyc文件,批注:37是因?yàn)槲沂褂玫膒ython版本為3.7.4所以含有37,其他版本要做相應(yīng)的調(diào)整。
需要按照原來(lái)的項(xiàng)目目錄結(jié)構(gòu)輸出pyc文件才能保證模塊之間調(diào)用沒(méi)有問(wèn)題。

編碼實(shí)現(xiàn)

import os
import shutil
import compileall
from pathlib import Path
versions = ".cpython-37"
pycache = "__pycache__"
build_dir = "build"
root = os.getcwd()
print("正在編譯文件...請(qǐng)等待...")
compileall.compile_dir(root) # 編譯
build = Path(root,build_dir)
if build.exists():
    print("正在移除build目錄...請(qǐng)等待...")
    shutil.rmtree(build)
print("正在復(fù)制文件...請(qǐng)等待...")
shutil.copytree(root,build) # 復(fù)制文件到build目錄
for root, dirs, files in os.walk(build): # 開始遍歷文件
        # root 表示當(dāng)前正在訪問(wèn)的文件夾路徑
        # dirs 表示該文件夾下的子目錄名list
        # files 表示該文件夾下的文件list
        # 遍歷文件
        for f in files:
            src = os.path.join(root, f)
            if f.endswith(".py"):
                os.remove(src)
            elif f.endswith(".pyc"):
                upper_dir = root.replace(pycache,"")
                dst = os.path.join(upper_dir,f.replace(versions,""))
                shutil.copy(src,dst)
for root, dirs, files in os.walk(build): # 移除緩存文件夾
    print("正在移除緩存文件...請(qǐng)等待...")
    if root.endswith(pycache):
        shutil.rmtree(root)
print("打包完成...請(qǐng)查看目錄:"+str(build))

注意文件中版本號(hào)的調(diào)整,基本上是通用的,所有的python項(xiàng)目都可以用拿來(lái)就用。代碼很簡(jiǎn)單,但是很實(shí)用。

牛人之所以是牛人,是因?yàn)槟悻F(xiàn)在在踩的坑,他曾經(jīng)都已經(jīng)踩過(guò)了。

以上就是Python項(xiàng)目打包成二進(jìn)制的方法的詳細(xì)內(nèi)容,更多關(guān)于Python項(xiàng)目打包成二進(jìn)制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python實(shí)現(xiàn)數(shù)據(jù)可視化超詳細(xì)講解

    python實(shí)現(xiàn)數(shù)據(jù)可視化超詳細(xì)講解

    Python的數(shù)據(jù)可視化是將數(shù)據(jù)以圖形或圖表的形式呈現(xiàn),使復(fù)雜的信息更易于理解和分析,本文給大家詳細(xì)介紹了python數(shù)據(jù)可視化的實(shí)現(xiàn),文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • python兩個(gè)list[]相加的實(shí)現(xiàn)方法

    python兩個(gè)list[]相加的實(shí)現(xiàn)方法

    這篇文章主要介紹了python兩個(gè)list[]相加的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫

    如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫

    這篇文章主要介紹了如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Python xlrd模塊導(dǎo)入過(guò)程及常用操作

    Python xlrd模塊導(dǎo)入過(guò)程及常用操作

    這篇文章主要介紹了Python xlrd模塊導(dǎo)入過(guò)程及常用操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • pycharm遠(yuǎn)程linux開發(fā)和調(diào)試代碼的方法

    pycharm遠(yuǎn)程linux開發(fā)和調(diào)試代碼的方法

    這篇文章主要介紹了pycharm遠(yuǎn)程linux開發(fā)和調(diào)試代碼的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上

    Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上

    這篇文章主要介紹了Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上,本文講解了判斷 OpenVZ/Xen PV/UML、判斷 VMware/Xen HVM/KVM、判斷 VirtualBox/Virtual PC等方法,需要的朋友可以參考下
    2015-04-04
  • 基于python解線性矩陣方程(numpy中的matrix類)

    基于python解線性矩陣方程(numpy中的matrix類)

    這篇文章主要介紹了基于python解線性矩陣方程(numpy中的matrix類),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python中使用Pillow庫(kù)生成立體文字的圖像

    Python中使用Pillow庫(kù)生成立體文字的圖像

    在眾多Python庫(kù)中,Pillow庫(kù)以其豐富的功能和易用性在圖像處理領(lǐng)域脫穎而出,Pillow是Python領(lǐng)域中最基礎(chǔ)且常用的圖像處理庫(kù)之一,,本文將詳細(xì)介紹如何使用Python自動(dòng)生成帶有立體效果的文字,我們會(huì)逐步講解輸入文字、選擇字體和顏色,并應(yīng)用立體效果來(lái)生成最終圖
    2025-03-03
  • 對(duì)python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解

    對(duì)python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解

    今天小編就為大家分享一篇對(duì)python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn)

    Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn)

    這篇文章主要介紹了Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

景洪市| 贵南县| 松桃| 滨海县| 元氏县| 岳普湖县| 鄯善县| 罗江县| 大田县| 保德县| 乳源| 榆树市| 广宁县| 衢州市| 延边| 昌邑市| 普洱| 泗水县| 炉霍县| 绥滨县| 长垣县| 象州县| 兴海县| 临潭县| 黔江区| 公安县| 阿坝县| 儋州市| 宜春市| 凤冈县| 晋宁县| 若尔盖县| 德昌县| 简阳市| 赤水市| 偏关县| 望谟县| 毕节市| 濮阳市| 广河县| 浏阳市|