欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python項目打包成二進制的方法

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

Python項目打包

python本身是一種腳本語音,發(fā)布的話,直接發(fā)布源代碼就可以了,但是,可能有些公司并不想發(fā)布源代碼,那么,就涉及到打包了,網上有很的打包教程,其實我也沒有認真去研究,因為我只想簡單點,所以,我打算直接編譯成pyc二進制文件來發(fā)布,就可以了。

問題

編譯成二進制文件(*.pyc)之后,文件名都變了,模塊之間怎么引用?
網上的例子,大都是對單個文件編譯的介紹,對整個目錄編譯的話,也都是輸出到相應的文件夾下,需要單獨抽取出來,發(fā)布。

解決問題

一般編譯之后的文件命名為:比如我的源文件為test.py,編譯后輸出到__pycache__文件夾下test.cpython-37.pyc,要保持模塊引用不改變,那么必須在編譯之后重命名為test.pyc文件,批注:37是因為我使用的python版本為3.7.4所以含有37,其他版本要做相應的調整。
需要按照原來的項目目錄結構輸出pyc文件才能保證模塊之間調用沒有問題。

編碼實現

import os
import shutil
import compileall
from pathlib import Path
versions = ".cpython-37"
pycache = "__pycache__"
build_dir = "build"
root = os.getcwd()
print("正在編譯文件...請等待...")
compileall.compile_dir(root) # 編譯
build = Path(root,build_dir)
if build.exists():
    print("正在移除build目錄...請等待...")
    shutil.rmtree(build)
print("正在復制文件...請等待...")
shutil.copytree(root,build) # 復制文件到build目錄
for root, dirs, files in os.walk(build): # 開始遍歷文件
        # root 表示當前正在訪問的文件夾路徑
        # 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("正在移除緩存文件...請等待...")
    if root.endswith(pycache):
        shutil.rmtree(root)
print("打包完成...請查看目錄:"+str(build))

注意文件中版本號的調整,基本上是通用的,所有的python項目都可以用拿來就用。代碼很簡單,但是很實用。

牛人之所以是牛人,是因為你現在在踩的坑,他曾經都已經踩過了。

以上就是Python項目打包成二進制的方法的詳細內容,更多關于Python項目打包成二進制的資料請關注腳本之家其它相關文章!

相關文章

  • Flask框架debug與配置項的開啟與設置詳解

    Flask框架debug與配置項的開啟與設置詳解

    這篇文章主要介紹了Flask框架debug與配置項的開啟與設置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-09-09
  • pandas 讀取excel文件的操作代碼

    pandas 讀取excel文件的操作代碼

    pandas 讀取excel文件使用的是 read_excel方法。本文將詳細解析read_excel方法的常用參數,以及實際的使用示例,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Python安裝并操作redis實現流程詳解

    Python安裝并操作redis實現流程詳解

    這篇文章主要介紹了Python安裝并操作redis實現流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Python?Paramiko上傳下載sftp文件及遠程執(zhí)行命令詳解

    Python?Paramiko上傳下載sftp文件及遠程執(zhí)行命令詳解

    這篇文章主要為大家介紹了Python?Paramiko上傳下載sftp文件及遠程執(zhí)行命令示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Python使用正則表達式抓取網頁圖片的方法示例

    Python使用正則表達式抓取網頁圖片的方法示例

    這篇文章主要介紹了Python使用正則表達式抓取網頁圖片的方法,結合具體實例形式分析了Python網頁文件的讀取及正則匹配相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • slearn缺失值處理器之Imputer詳析

    slearn缺失值處理器之Imputer詳析

    這篇文章主要給大家介紹了關于slearn缺失值處理器之Imputer的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • Django中自定義查詢對象的具體使用

    Django中自定義查詢對象的具體使用

    這篇文章主要介紹了Django中自定義查詢對象的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Python3操作SQL Server數據庫(實例講解)

    Python3操作SQL Server數據庫(實例講解)

    下面小編就為大家?guī)硪黄狿ython3操作SQL Server數據庫(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 帶你用Python實現Saga 分布式事務的方法

    帶你用Python實現Saga 分布式事務的方法

    在這篇文章里,我們介紹了 SAGA 的理論知識,也通過一個例子,完整給出了編寫一個 SAGA 事務的過程,涵蓋了正常成功完成,異常情況,以及成功回滾的情況,需要的朋友參考下吧
    2021-09-09
  • Python?合并/拆分Excel的實現示例

    Python?合并/拆分Excel的實現示例

    有時對于多個工作表需要進行合并或拆分,以便進行瀏覽總結,本文主要介紹了Python?合并/拆分Excel的實現示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論