Ubuntu搭建Python Web开发环境详细步骤
首先更新系统软件包列表,确保后续安装的软件版本最新:
sudo apt update
Ubuntu 22.04及以上版本默认预装Python 3.10+,但仍需确认并安装pip
(Python包管理器):
sudo apt install python3 python3-pip python3-venv
验证安装是否成功:
python3 --version # 查看Python版本(如3.10.12)
pip3 --version # 查看pip版本(如23.3.1)
虚拟环境可避免不同项目间的依赖冲突,推荐为每个项目单独创建:
# 在项目目录下创建虚拟环境(如命名为"myenv")
python3 -m venv myenv
# 激活虚拟环境(激活后终端提示符会显示环境名)
source myenv/bin/activate
# 激活后,后续安装的包会存放在虚拟环境中,不影响全局Python环境
根据项目需求选择轻量级(Flask)或全功能(Django)框架:
pip install Flask
创建一个简单的Flask应用(app.py
):
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Flask World!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
运行应用:
python app.py
访问http://<服务器IP>:5000
,若看到"Hello, Flask World!"则说明成功。
pip install Django
创建Django项目与应用:
# 创建项目目录(如"myproject")
django-admin startproject myproject
cd myproject
# 创建应用(如"myapp")
python manage.py startapp myapp
# 注册应用(修改myproject/settings.py,将"myapp"添加到INSTALLED_APPS列表)
运行开发服务器:
python manage.py runserver
访问http://<服务器IP>:8000
,若看到Django欢迎页面则说明成功。
开发环境仅用于调试,生产环境需用**Nginx(反向代理)+ uWSGI(应用服务器)**提升性能与安全性。
sudo apt install nginx
启动Nginx并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
安装uWSGI:
pip install uwsgi
创建uWSGI配置文件(如myapp_uwsgi.ini
,放在项目根目录):
[uwsgi]
module = wsgi:app # Flask应用需指向"wsgi:app"(wsgi.py文件中的app对象);Django应用需指向"myproject.wsgi:application"
master = true
processes = 5 # 进程数(根据服务器配置调整)
socket = myapp.sock # Unix socket文件路径(Nginx将通过此文件通信)
chmod-socket = 660 # socket文件权限
vacuum = true # 退出时清理临时文件
die-on-term = true # 接收SIGTERM信号时正常退出
创建Systemd服务文件(如/etc/systemd/system/myapp.service
):
[Unit]
Description=uWSGI instance for myapp
After=network.target
[Service]
User=ubuntu # 运行服务的用户(根据实际情况修改)
Group=www-data # 运行服务的组(通常为www-data)
WorkingDirectory=/path/to/your/app # 项目根目录(如/home/ubuntu/myproject)
ExecStart=/path/to/your/app/myenv/bin/uwsgi --ini myapp_uwsgi.ini # 指定虚拟环境中的uwsgi路径
[Install]
WantedBy=multi-user.target
启动并启用服务:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
编辑Nginx默认配置文件(/etc/nginx/sites-available/default
),替换server
块内容:
server {
listen 80;
server_name your_domain_or_ip; # 替换为域名(如example.com)或服务器IP
location / {
include uwsgi_params; # 加载uWSGI参数
uwsgi_pass unix:/path/to/your/app/myapp.sock; # 指向uWSGI的socket文件
}
# 可选:配置静态文件服务(Django需额外设置STATIC_ROOT)
location /static/ {
alias /path/to/your/app/static/; # 静态文件目录(需提前收集静态文件)
}
}
测试Nginx配置是否正确:
sudo nginx -t
重启Nginx使配置生效:
sudo systemctl restart nginx
若服务器开启了UFW防火墙,需允许80(HTTP)和443(HTTPS)端口:
sudo ufw allow 'Nginx Full'
sudo apt install mysql-server
)或PostgreSQL(sudo apt install postgresql postgresql-contrib
),并通过框架的ORM(如Django的models.py
)或SQLAlchemy(Flask)操作。通过以上步骤,你已在Ubuntu上搭建好Python Web开发环境,可根据项目需求选择框架并开始开发。生产环境中还需注意定期更新依赖、备份数据、配置HTTPS(如Let’s Encrypt证书)等安全措施。