在阿里云轻量应用服务器上部署 Python 环境,其实并不复杂。核心思路就两步:选对镜像 和 配置好运行环境。
作为过来人,我直接给你两条最稳妥的路径,你可以根据自己的技术背景二选一。
路径一:傻瓜式操作(推荐新手)
利用阿里云提供的“Python”专属镜像
这是最快、最不容易出错的方法。阿里云轻量应用服务器自带了很多预装环境的镜像,其中就有专门针对 Python 优化的。
-
创建/重置服务器时选择镜像:
- 在购买或重置实例时,在“镜像”选项卡下,找到 “应用镜像”。
- 搜索或筛选 “Python” 相关的镜像(通常叫
Python 3.x或类似名称)。 - 这类镜像已经预装了 Nginx/Apache、Python 解释器以及常用的依赖包管理器 pip。
-
连接服务器:
- 通过控制台提供的 VNC 登录,或者使用 SSH 工具(如 Terminal、Xshell、PuTTY)连接你的服务器 IP。
-
验证环境:
python3 --version pip3 --version如果能看到版本号,说明基础环境就绪。
-
部署项目:
- 将你的代码上传到
/home/wwwroot/default或你指定的目录。 - 如果是 Web 项目(如 Flask/Django),通常需要使用 WSGI 服务器(如 Gunicorn 或 uWSGI)配合 Nginx 反向X_X来运行。
- 将你的代码上传到
路径二:自由定制版(适合有 Linux 基础的用户)
使用 CentOS/Ubuntu 官方镜像 + 手动安装
如果你更喜欢控制每一个细节,或者需要特定版本的 Python,建议从标准 Linux 系统开始。
第一步:更新系统
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
第二步:安装 Python
注意:不要直接删除系统自带的 Python,很多系统工具依赖它。我们通常安装多个版本或使用 pyenv。
方法 A:直接安装最新稳定版(简单)
# Ubuntu
sudo apt install python3 python3-pip python3-venv
# CentOS
sudo yum install python3 python3-pip
方法 B:使用源码编译安装指定版本(高级)
比如你想装 Python 3.10:
# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget curl
# 下载并解压
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
tar -xf Python-3.10.0.tgz
cd Python-3.10.0
# 编译安装
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall # 注意用 altinstall,避免覆盖默认 python
第三步:创建虚拟环境(强烈建议)
为了避免包冲突,务必为每个项目创建独立环境。
python3 -m venv myproject_env
source myproject_env/bin/activate
激活后,你的命令行提示符前会出现 (myproject_env),此时安装的库只对该项目有效。
第四步:安装项目依赖
pip install -r requirements.txt
关键一步:让 Python 应用跑起来
很多人装好了 Python,但访问网站还是 404 或拒绝连接。这是因为你需要一个进程管理器。
方案 1:Gunicorn + Nginx(生产环境标配)
- 安装 Gunicorn:
pip install gunicorn - 启动服务(假设你的主文件是
app.py,包含app对象):gunicorn --bind 0.0.0.0:8000 app:app -
配置 Nginx 反向X_X:
编辑/etc/nginx/sites-available/default(Ubuntu)或/etc/nginx/conf.d/default.conf(CentOS),添加: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; } }重启 Nginx:
sudo systemctl restart nginx
方案 2:Supervisor 管理进程(防止后台挂掉)
直接用 gunicorn & 启动,一旦关闭 SSH 窗口,服务可能中断。使用 Supervisor 可以让它在后台常驻。
- 安装 Supervisor:
sudo apt install supervisor # Ubuntu sudo yum install supervisor # CentOS - 创建配置文件
/etc/supervisor/conf.d/myapp.conf:[program:myapp] command=/home/user/myproject_env/bin/gunicorn --bind 0.0.0.0:8000 app:app directory=/home/user/myproject user=www-data autostart=true autorestart=true stderr_logfile=/var/log/myapp.err.log stdout_logfile=/var/log/myapp.out.log - 加载配置并启动:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start myapp
避坑指南
-
防火墙问题:
轻量应用服务器有内置防火墙。确保在控制台“防火墙”规则中放行了 80 (HTTP) 和 443 (HTTPS) 端口。如果在本地测试,记得放行 8000 等自定义端口。 -
权限问题:
上传代码时,建议使用 SFTP 工具(如 FileZilla)以普通用户身份上传,避免使用 root 直接操作项目文件。Nginx 通常以www-data或nginx用户运行,确保这些用户对项目目录有读取权限。 -
SSL 证书:
如果要启用 HTTPS,推荐使用 Let’s Encrypt 的 Certbot 自动申请免费证书,并在 Nginx 中配置。 -
数据库驱动:
如果你的 Python 项目连接 MySQL/MongoDB,别忘了在虚拟环境中安装对应的驱动(如mysqlclient,pymongo),并且服务器上也安装了相应的数据库客户端库。
按照以上步骤,你可以在 10-15 分钟内完成一个标准的 Python Web 服务部署。遇到问题时,优先查看 /var/log/nginx/error.log 和 Gunicorn/Supervisor 的日志,90% 的问题都能从中找到答案。
云知道CLOUD