在Ubuntu上部署Python項目通常涉及以下幾個步驟:
更新系統:
sudo apt update
sudo apt upgrade
安裝Python和pip:
Ubuntu 20.04和更高版本默認已安裝Python 3。你可以通過運行以下命令檢查Python和pip的版本:
python3 --version
pip3 --version
如果Python或pip沒有安裝,可以使用以下命令安裝:
sudo apt install python3 python3-pip
創建虛擬環境:
使用python3 -m venv
或pipenv
創建并激活虛擬環境。例如:
python3 -m venv myenv
source myenv/bin/activate
或者使用pipenv
:
pip install pipenv
pipenv --create
pipenv shell
安裝項目依賴:
進入項目的根目錄,如果有requirements.txt
文件,則使用pip安裝所有依賴項:
cd /path/to/my_project
pip install -r requirements.txt
安裝Nginx:
sudo apt install nginx
配置Nginx:
編輯Nginx配置文件,通常位于/etc/nginx/sites-available/default
,添加以下內容到配置文件中:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
將your_domain_or_ip
替換為你的實際域名或IP地址。
重啟Nginx:
sudo systemctl restart nginx
根據項目類型,可能是運行一個.py
腳本、啟動Flask/Django等Web應用,或者其他類型的程序。例如,如果是Django應用:
python manage.py runserver
或者如果是Flask應用:
export FLASK_APP=app.py
flask run --host=0.0.0.0
創建一個systemd服務文件,并放置在/etc/systemd/system/
目錄下。然后啟用并啟動服務:
[Unit]
Description=My Python Service
After=network.target
[Service]
User=your_username
Group=your_group
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/app/myenv/bin/python /path/to/your/app/app.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start my-python-service.service
sudo systemctl enable my-python-service.service
安裝Docker:
sudo apt update
sudo apt install docker.io
拉取Python鏡像:
docker pull python:3.6
創建容器并在容器內增加項目所需第三方庫:
docker run -it python:3.6 /bin/bash
pip install pandas opencv-python
將步驟2的容器制作為鏡像:
docker commit fa5bc4eaf4de new_python:3.6
使用新的鏡像啟動容器測試:
docker run -it new_python:3.6 /bin/bash
打包鏡像:
docker save -o python_images.tar.gz new_python:3.6
以上步驟是在Ubuntu上部署Python項目的基本流程。具體項目部署時可能還需要考慮其他因素,如數據庫設置、SSL證書安裝等。