這裡主要收集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 這四個檔案丟到伺服器的某個...