在云虚拟主机(如阿里云、腾讯云、华为云等)上使用Python,通常需要以下步骤,这里以Linux系统 的云虚拟主机为例(Windows主机操作类似,但路径和命令不同):
- 通过SSH登录云主机:
ssh username@your_server_ip
- 检查Python是否预装:
python --version # 查看Python 2.x python3 --version # 查看Python 3.x
如果未安装,手动安装:
sudo apt update && sudo apt install python3 # Debian/Ubuntu sudo yum install python3 # CentOS/RHEL
将本地代码上传到云主机:
方法1:使用scp
命令(推荐)
scp -r /本地/项目路径 username@your_server_ip:/远程/目录
方法2:通过FTP工具(如FileZilla)
使用主机提供的FTP账号上传文件。
在项目目录中安装所需库:
cd /远程/项目路径 pip3 install -r requirements.txt # 如果依赖写在requirements.txt中
若无pip
,先安装:
sudo apt install python3-pip # Debian/Ubuntu sudo yum install python3-pip # CentOS
直接运行脚本:
python3 your_script.py
后台运行(避免SSH断开后终止):
nohup python3 your_script.py > output.log 2>&1 &
日志将保存到output.log
。
5. Web应用部署(以Flask为例)
若运行Web服务(如Flask/Django),需额外配置:
pip3 install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app # 假设入口文件是app.py,Flask实例名为app
步骤3:配置Nginx反向代理(可选)
在Nginx配置文件中添加 server { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:5000; # 转发到Gunicorn端口 proxy_set_header Host $host; } }
重启Nginx生效:
sudo systemctl restart nginx
通过systemd
管理服务(以Ubuntu为例):
- 创建服务文件:
sudo nano /etc/systemd/system/myapp.service
- 写入配置:
[Unit] Description=My Python App After=network.target [Service] User=username WorkingDirectory=/项目路径 ExecStart=/usr/bin/python3 /项目路径/app.py Restart=always [Install] WantedBy=multi-user.target
- 启动服务:
sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp # 开机自启
1、权限不足:
- 确保项目目录有读写权限:chmod -R 755 /项目路径
2、端口被占用:
- 检查端口:netstat -tuln | grep 端口号
3、依赖缺失:
- 确认所有库已安装:pip3 freeze
4、防火墙拦截:
- 开放端口(如5000):
sudo ufw allow 5000 # Ubuntu sudo firewall-cmd --add-port=5000/tcp --permanent # CentOS
步骤 | 命令/操作 |
1. 连接主机 | ssh username@ip |
2. 上传代码 | scp 或 FTP 工具 |
3. 安装依赖 | pip3 install -r requirements.txt |
4. 运行脚本 | python3 script.py 或nohup python3 script.py & |
5. Web应用部署 | 用Gunicorn启动,Nginx反向代理 |
6. 开机自启 | 通过systemd 创建服务 |
根据云服务商的不同(如cPanel/Plesk面板),也可通过图形界面操作,但核心步骤一致。
文章摘自:https://idc.huochengrm.cn/zj/12926.html
评论
荤朝
回复使用Python操作云虚拟主机,需先配置环境,然后通过SSH或API进行远程操作。