前言
當需要為一個離線環境部署python應用時,離線環境可能缺少各種python環境,有docker的話可以用docker,沒有docker可以用pyinstaller
打包成二進制文件。pyinstaller
會打包當前所有用pip安裝的包,所以建議在虛擬環境中打包python應用。
- 系統版本:centos 7
- python版本:3.6
步驟
- 安裝
virtualenv
pip3 install virtualenv
- 創建虛擬環境
virtualenv myvenv
- 激活虛擬環境
cd myvenv
source ./bin/activate
- 下載依賴(在虛擬環境使用
pip
時會引用宿主機的pip.conf
文件,因此建議宿主機先設置好國內pip源,加快下載)
pip3 install pandas pyinstaller pymysql
- 編輯python文件:test.py
- 打包test.py。可以通過
pip3 show pandas
獲取site-packages
的路徑。打包后的二進制程序在當前目錄的dist
目錄下。
pyinstaller -F -p /home/myvenv/lib64/python3.6/site-packages test.py
- 退出虛擬環境
deactivate
其它
- 需要管理多個虛擬環境時,推薦使用
virtualenvwrapper
- 如果需要刪除
virtualenv
創建的虛擬環境,直接刪除目錄即可。