位置:首页 > Python > Ubuntu 下迁移 Python 项目:从环境准备到部署上线的完整流程

Ubuntu 下迁移 Python 项目:从环境准备到部署上线的完整流程

时间:2026-08-24  |  作者:极客少年  |  阅读:0

把Python项目从Windows开发机搬到Ubuntu服务器,听起来简单,但中间有不少坑要填。如果你也正打算做这件事,那下面这份完整的迁移流程可要收好了,从环境准备到部署优化,每一步都捋得清清楚楚。

ubuntu下如何迁移python项目

1. 准备目标Ubuntu环境

到了目标机器上,先把系统打扫干净。更新系统包,装上Python3、pip、venv和git,后面都会用到:

sudo apt update && sudo apt upgrade -y
# 更新系统包
sudo apt install python3 python3-pip python3-venv git -y
# 安装Python3、pip、venv及git

2. 迁移项目代码

代码搬运有两种常用姿势:推荐用git克隆,版本一致还方便回滚;或者用scp/rsync直接把整个目录传过去。

  • git克隆(推荐):
    git clone <项目仓库URL> /path/to/ubuntu/project_dir
  • scp传输(本地→远程):
    scp -r /local/project/path username@ubuntu_ip:/remote/project/dir

3. 迁移Python虚拟环境

虚拟环境里装满了项目依赖,这块迁移有三种方式,按推荐度排了序。

方法1:通过requirements.txt重新安装(最通用)

先在源机器上把依赖导出来:

source /path/to/source/venv/bin/activate
pip freeze > requirements.txt

然后把生成的 requirements.txt 传到目标机器,创建新环境并装依赖:

cd /path/to/ubuntu/project_dir
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

方法2:打包整个虚拟环境目录(快速但需版本一致)

如果两边的Python版本相同,直接打包整个虚拟环境是最省事的。源机器上压缩,传到目标机器解压,激活就能用。

源机器打包:

tar -czvf venv.tar.gz /path/to/source/venv
scp venv.tar.gz username@ubuntu_ip:/remote/project/dir

目标机器解压并激活:

tar -xzvf venv.tar.gz
source /path/to/ubuntu/project_dir/venv/bin/activate

方法3:离线迁移wheel包(无网络环境适用)

在没有外网的环境下,这个方法最靠谱。先在源机器上下载所有wheel文件,打包传到目标机器,然后离线安装。

源机器下载wheel包:

mkdir packages && pip wheel -w packages -r requirements.txt
tar -czvf packages.tar.gz packages
scp packages.tar.gz username@ubuntu_ip:/remote/project/dir

目标机器安装:

tar -xzvf packages.tar.gz
cd /path/to/ubuntu/project_dir
python3 -m venv venv
source venv/bin/activate
pip install --no-index --find-links=./packages -r requirements.txt

4. 处理系统依赖

还有一层依赖容易被忽视——系统级库。比如psycopg2需要libpq-devopencv-python需要libopencv-dev。如果迁移后出现ImportError,先看看是不是缺了这些系统库。常见的一键安装包如下:

sudo apt install libssl-dev libffi-dev libpq-dev libjpeg-dev libpng-dev -y

5. 适配项目配置

  • 路径调整:检查代码里有没有硬编码的Windows路径(比如C:datafile.txt),全部改成Ubuntu下的绝对路径。
  • 环境变量:把数据库连接串这类配置从Windows搬到Ubuntu,可以放在~/.bashrc或项目的.env文件里,然后执行source ~/.bashrc使其生效。
  • 权限设置:给项目目录合适的读写权限:
chmod -R 755 /path/to/ubuntu/project_dir

6. 测试项目运行

所有配置到位后,激活虚拟环境,启动项目看看效果:

cd /path/to/ubuntu/project_dir
source venv/bin/activate
python manage.py runserver 0.0.0.0:8000
  • 如果是Django项目,记得把ALLOWED_HOSTS加上服务器IP(开发时可以用['*'],生产环境建议指定具体IP)。
  • 如果是Flask项目,确保FLASK_APP环境变量已设置,比如export FLASK_APP=app.py

7. 部署优化(可选但推荐)

配置Gunicorn:Django自带的开发服务器扛不住生产流量,换成Gunicorn是标准做法。

pip install gunicorn
gunicorn --workers 3 --bind 0.0.0.0:8000 project.wsgi

配置Nginx反向袋里:前端再加一层Nginx,处理静态文件和负载均衡,配置起来也不复杂。

sudo apt install nginx -y
sudo nano /etc/nginx/sites-a vailable/your_project

添加以下内容(记得替换your_domain_or_ipproject_dir):

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;
    }
    location /static/ {
        alias /path/to/ubuntu/project_dir/static/;
    }
}

启用配置并重启Nginx:

sudo ln -s /etc/nginx/sites-a vailable/your_project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

常见问题解决

  • 依赖安装失败:可以用国内镜像源加速,比如清华源:
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  • Python版本不兼容:确保目标Ubuntu安装了与源机器一致的Python版本,比如Python 3.8:
    sudo apt install python3.8 python3.8-venv -y
    python3.8 -m venv venv
  • 缺少系统库:根据错误提示安装对应库,比如ModuleNotFoundError: No module named '_ssl'就装libssl-dev

跟着这套流程走下来,Ubuntu上的Python项目基本就能稳定运行了。当然,具体项目可能还有自己的特殊配置,但只要抓住这些关键点,迁移并不会太难。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多