python專案打包發布總結

2021-07-23 17:52:23 字數 2064 閱讀 2595

這裡主要收集python專案的打包、發布和部署的常用方法,只是入門級別,深入的流程還是以官方文件為準(鏈結每節都已經給出)。

distutils - python自帶的基本安裝工具, 適用於非常簡單的應用場景使用, 不支援依賴包的安裝

通過distutils來打包,生成安裝包,安裝python包等工作,需要編寫名為setup.py python指令碼檔案。

setuptools - 針對 distutils 做了大量擴充套件, 尤其是加入了包依賴機制。不支援python3,安裝完setuptools後會有easy_install

distribute - 類似於setuptools,支援python3,安裝完distribute後會有easy_install。

easy_install - setuptools 和 distribute 自帶的安裝指令碼, 也就是一旦setuptools或distribute安裝完畢, easy_install 也便可用了。

pip - 目標是取代easy_install。easy_install 有很多不足: 安裝事務是非原子操作, 只支援 svn, 沒有提供解除安裝命令, 安裝一系列包時需要寫指令碼; pip 解決了以上問題, 已儼然成為新的事實標準, virtualenv 與它已經成為一對好搭檔;

distutils2 - setuptools 和 distribute 的誕生是因為 distutils 的不濟, 進而導致目前分化的狀況。它將成為 python 3.3 的標準庫 packaging , 並在其它版本中以distutils2 的身份出現; 換句話說, 它和 pip 將聯手結束目前混亂的狀況。

virtualenv - 用來建立隔離的python環境,處理python環境的多版本和模組依賴。

常識 新建資料夾(例如:distribution), 將專案檔案放進去

在該資料夾下,新建setup.py檔案

from distutils.core import setup

setup(

name=』login』, #這個是最終打包的檔名

version=』1.0.0』,

py_modules=[『loginr』], #要打包哪些,.py檔案,

)儲存退出

在命令列下,進入該資料夾,執行一下命令:

setuptools 只是對distutils 的增強, 其使用過程還是一樣:

打包: python setup.py sdist

安裝: sudo python setup.py install (--record files.txt)

解除安裝: sudo cat files.txt | sudo xargs rm -rf

setuptools工具的setup.py的模板

官方文件:

主要命令:

$ virtualenv env

$ virtualenv --system-site-packages env # 繼承系統原來的安裝包

$ source bin/activate # 啟動虛擬環境

$ deactivate # 退出環境

$ rm -r /path/to/env # 刪除環境

$ virtualenv --relocatable env # 創造可以浮動的虛擬環境

$ virtualenv --extra-search-dir=/path/to/distributions env # 新增自定義版本的pip或setuptools

移植:

建立無繼承的虛擬環境

virtualenv --no-site-packages path/to/projdirname

進入projdirname, 編輯專案

cd path/to/projdirname

退出,至上級目錄

cd ..

virtualenv --relocatable projdirname# 創造可以浮動的虛擬環境

將整個資料夾複製到指定的機器上, 進入path/to/projdirname, 啟動環境,執行程式

Python專案打包發布方法

目前python打包工具有多個,目前比較好用的為pyinstaller,該工具可以支援在window和linux下使用。在windows下,大小為幾十k的原始檔打包成exe檔案,可能為幾十兆,原因是把程式所引用的庫檔案也一起打包在一起。如下以windows系統為例,分2個步驟,演示如何使用pyins...

打包發布VUE專案

適用於前後端分離專案,主要是打包前端 核心命令 cnpm install cnpm run build就1個是安裝依賴包,1個是構建專案,最後生成 dist index.html static把這個推到環境就可以了 從我目前的線上經驗上呢 也遇到一些問題的 1.涉及到開發那邊新增了模組,我們這邊打包...

NUXT vue專案打包發布

nuxt是vue專案伺服器端渲染的通用型框架,主要作用是seo優化 具體的搭建專案我這裡就不做說明了,大家闊以參考官方文件說明。1 首先執行npm run build 2 將打包好的12 34.nuxt static nuxt.config.js package.json 這四個檔案丟到伺服器的某個...