在Ubuntu上部署Python项目通常涉及以下几个步骤:
安装Python:
首先确保系统中已安装Python,并且可能是您项目所需的特定版本。您可以使用pyenv
来轻松管理多个Python版本。如果没有安装pyenv
,可以直接使用Ubuntu的包管理器安装Python,例如安装Python 3.8.6:
sudo apt update
sudo apt install python3.8
创建虚拟环境:
使用python3 -m venv
或pipenv
(或者在安装了pyenv
的情况下使用pyenv virtualenv
)创建并激活虚拟环境:
# 如果使用系统自带的venv模块创建虚拟环境
python3.8 -m venv my_project_venv
source my_project_venv/bin/activate
# 或者如果使用pipenv
pip install pipenv
pipenv --three
pipenv shell
安装项目依赖:
进入项目的根目录,如果有requirements.txt
文件,则使用pip
安装所有依赖项:
cd /path/to/my_project
pip install -r requirements.txt
运行Python项目:
根据项目类型,可能是运行一个.py
脚本、启动Flask/Django等Web应用,或者其他类型的程序。例如:
python main.py
或者如果是Django应用:
python manage.py runserver
配置Nginx作为反向代理(可选): 为了将外部请求转发到Python应用,通常使用Nginx作为反向代理。
sudo apt update
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/default
server
块中,配置反向代理,将请求转发到Python应用所在的端口(假设Python应用运行在8000端口):server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
sudo nginx -t
sudo systemctl reload nginx
设置系统服务(可选):
为了确保Python应用在系统重启后自动启动,可以创建一个systemd
服务文件。
systemd
服务文件:sudo nano /etc/systemd/system/python-app.service
[Unit]
Description=Python Application
After=network.target
[Service]
User=your_user
Group=your_group
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/app/myenv/bin/python3 /path/to/your/app/app.py
Restart=always
[Install]
WantedBy=multi-user.target
systemd
配置并启动服务:sudo systemctl daemon-reload
sudo systemctl start python-app.service
sudo systemctl enable python-app.service
sudo systemctl status python-app.service
配置防火墙(可选): 如果你的服务器启用了防火墙(例如UFW),确保允许HTTP(80端口)和你的应用程序使用的端口(例如8000)通过防火墙:
sudo ufw allow 80
sudo ufw allow 8000
测试部署: 在部署完成后,访问你配置的域名或IP地址,确认应用程序是否正常运行。
以上步骤涵盖了在Ubuntu上部署Python项目的基本流程,包括安装必要的软件包、创建虚拟环境、安装项目依赖、运行项目以及配置反向代理和系统服务。根据具体项目的需求,可能还需要进行其他配置,例如数据库设置、SSL证书安装等。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu Python项目如何部署