You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

推送代码至远程后uWSGI路径变更问题求助

解决远程服务器uWSGI不在项目虚拟环境的问题

你遇到的核心问题很明确:本地项目虚拟环境(venv)里的uWSGI并没有同步到远程服务器——这是行业通用的最佳实践导致的:我们通常会把venv目录加入.gitignore,避免提交体积庞大的环境依赖文件,所以远程仓库里并没有你本地的venv,当前远程用的是系统级别的uWSGI。下面是具体的解决步骤:

步骤1:在远程服务器创建并激活项目虚拟环境

先通过SSH登录到你的远程服务器,进入项目仓库目录(/home/ldl/repo/Qiyun02),执行以下命令:

# 创建和本地同版本的Python虚拟环境(本地为Python3.5)
python3.5 -m venv venv

# 激活虚拟环境
source venv/bin/activate

激活成功后,命令行开头会出现(venv)标识,说明已经进入虚拟环境的上下文。

步骤2:同步项目依赖到远程虚拟环境

  1. 回到本地项目,先激活venv,然后生成项目依赖清单:
pip freeze > requirements.txt

这个命令会把本地venv里的所有依赖(包括uWSGI)写入requirements.txt文件。

  1. 将requirements.txt提交到Git并推送到远程:
git add requirements.txt
git commit -m "Add project dependencies list"
git push remote_repo master
  1. 回到远程服务器的项目目录(已激活venv),安装所有依赖:
pip install -r requirements.txt

执行完成后,uWSGI就会被安装到远程项目的venv/lib/python3.5/site-packages路径下了。

步骤3:确保使用虚拟环境里的uWSGI启动服务

之后启动uWSGI时,有两种方式确保调用的是venv内的版本:

  • 方式一:激活venv后直接执行uwsgi命令(此时系统会优先使用虚拟环境内的二进制文件)
  • 方式二:使用虚拟环境内uWSGI的绝对路径,比如:
/home/ldl/repo/Qiyun02/venv/bin/uwsgi --your-uwsgi-config.ini

验证结果

在远程激活venv后执行pip show uwsgi,你会看到Location已经指向项目的venv路径,此时用这个uWSGI配置连接Django就没问题了。

内容的提问来源于stack exchange,提问作者sof-03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:42:41