背景
部署到線上的服務不能提供外網權限,不能通過訪問公共pypi來拉取依賴包,那就只能去部署一個私有的python倉庫,搭建不麻煩,維護卻麻煩,所以作爲業務開發人員,要是有個方法,能把在開發階段開發機上的依賴包,打包上線到線上機器,然後本地安裝到線上機器,也是一個不錯的方法
生成依賴配置
因爲我們是pipenv工具管理依賴,而pipenv支持生成requirements.txt文件
pipenv lock -r > site-packages/requirements.txt
生成的requirements.txt裏配置了pypi源,以及每個依賴包對應的版本
根據requirements.txt下載依賴包的安裝包文件
pip3 download -d site-packages -r site-packages/requirements.txt
這一步完事後,我們所有依賴的包都下載到我們指定目錄了。然後把這個目錄上線到線上
安裝依賴包到線上機器
在線上機器執行以下命令,所有依賴都安裝到機器環境上,然後python3 main.py
就可以運行命令
pip3 install --no-index --find-links=./site-packages -r ./site-packages/requirements.txt --user
總結
線上機器只要安裝python3和pip3就可以完成打包上線python模塊。如果用python2.7,基本上機器也都帶了。