You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

跨平台Python venv:Windows创建的venv如何在Linux搭建可用环境?

嘿,我懂你现在的处境——把Windows上搭好的Django项目和venv传到Ubuntu服务器后,发现这虚拟环境根本没法用对吧?这太正常了,毕竟虚拟环境是和系统架构、Python版本绑定死的,跨系统肯定跑不起来。别慌,跟着下面的步骤来,很快就能在Linux上搭好可用的运行环境:

1. 先把上传的Windows版venv删掉(完全没用)
  • 登录你的Ubuntu服务器,找到项目根目录里的venv文件夹,直接删就行:
    rm -rf venv
    
2. 在Ubuntu上安装对应版本的Python和虚拟环境工具
  • 先确认你Windows本地用的Python版本(比如3.10.12),然后在Ubuntu上安装同大版本的Python(小版本差一点没关系,但尽量一致):
    • 先更新软件源:
      sudo apt update
      
    • 安装Python、虚拟环境工具和pip:
      sudo apt install python3.10 python3.10-venv python3-pip
      
    • 提示:如果你的Python版本是3.9或者3.11,把命令里的3.10换成对应的版本号就行。
3. 在Ubuntu上创建新的虚拟环境
  • 切换到你的Django项目根目录:
    cd /path/to/your/django-project
    
  • 创建新的虚拟环境:
    python3.10 -m venv venv
    
  • 激活这个虚拟环境(激活后命令行开头会出现(venv)标识,说明已经进入虚拟环境了):
    source venv/bin/activate
    
4. 安装项目所需的依赖包
  • 你应该提前在Windows的venv里生成过requirements.txt吧?如果没生成,先回到Windows本地,激活venv后运行pip freeze > requirements.txt,然后把这个文件传到服务器的项目根目录。
  • 在Ubuntu激活的venv里,执行下面的命令安装所有依赖:
    pip install -r requirements.txt
    
    • 小提醒:如果遇到类似psycopg2这类需要编译的包安装失败,先装系统级依赖再重试:
      sudo apt install libpq-dev python3.10-dev
      
5. 配置并测试Django运行
  • 配置环境变量:比如Django的SECRET_KEY、数据库连接信息这些,建议用.env文件管理(可以安装python-dotenv包来加载),别直接写在settings.py里。
  • 执行数据库迁移(如果用SQLite,注意给项目目录加读写权限;如果用PostgreSQL/MySQL,得先在Ubuntu上装好对应数据库并创建好用户和库):
    python manage.py migrate
    
  • 测试运行:
    python manage.py runserver 0.0.0.0:8000
    
    然后在浏览器里输入服务器公网IP:8000,能正常打开页面就说明环境没问题了。
6. 配置生产环境(可选但推荐)
  • 如果要正式部署,别用runserver(这只是开发用的),建议用Gunicorn做WSGI服务器,搭配Nginx做反向代理:
    • 安装Gunicorn:
      pip install gunicorn
      
    • 测试Gunicorn:
      gunicorn --bind 0.0.0.0:8000 your_project_name.wsgi
      
    • 之后可以配置Nginx反向代理和systemd服务,让站点能稳定后台运行。

另外提个小建议:以后更新依赖的时候,要么在服务器的venv里操作,要么在本地更新requirements.txt后再传到服务器重新安装,避免跨系统的依赖问题。

内容的提问来源于stack exchange,提问作者Earth

火山引擎 最新活动