python - 如何定位 virtualenv 安装

标签 python django

为现有的 Django 应用程序部署到实时服务器。这是一个非常古老的网站,已经 3 年多没有更新了。

我受雇于更新它的契约(Contract),其中包括将 Django 版本升级到最新版本。这破坏了网站上的许多必须修复的东西。

我进行了测试部署,一切顺利。现在是部署生效的时候了,我遇到了一些问题....

我要做的第一件事是在服务器上保留当前 Django 版本的日志,以防出现任何问题我们可以回滚。我尝试登录 Python 命令提示符并导入 Django 以查找版本号,但它说找不到 Django。

我进一步查看并在 pip requirements.txt 文件中找到了该版本。

然后我决定更新服务器上的实际django 版本。更新顺利进行。然后我检查了实时站点,一切都没有改变(旧文件仍然存在)。大多数网站应该已经坏了。它没有识别出 Django 中的任何更改。

我假设这可能是因为最后一个承包商使用了 virtualenv?这就是它无法识别 Django 的原因,或者 Django 更新未对实时站点执行任何操作的原因?

这是我能想出解释这个问题的唯一原因,因为有一个 pip requirements.txt 文件,他很可能用 pip 安装了 Django,这意味着 Python 应该识别 Django 的路径。

然后我将尝试使用命令“lsvirtualenv”找到 virtualenv 的源路径。但是当我这样做时,即使那样也会给我一个“找不到命令”的错误。

我唯一的猜测是这是没有这个命令的旧版本的 virtualenv?如果不是这种情况,我不确定发生了什么。

关于如何使用我有权访问的工具找到更新此服务器上的软件包版本所需的信息,有什么建议吗?

最佳答案

创建你自己的虚拟环境

如果全部失败,只需从 requirements.txt 重新创建 virtualenv 并从那里开始

了解旧应用的启动方式

如果你坚持要找到旧的,IMO 最直接的方法是找到生产 Django 应用程序是如何运行的。寻找启动它的 bash 脚本,一些 supervisor 条目等

如果你找到它是如何启动的,那么你可以查明它启动的环境(例如哪个virtualenv)

通过搜索普通文件找到virtualenv

除此之外,您还可以使用 findlocate 命令来搜索我们知道存在于虚拟环境中的文件,例如 lib/pythonX.Y/site- packages, bin/activate 或者 bin/python

关于python - 如何定位 virtualenv 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35326476/

相关文章:

python - 如何在 Python 中注销请求 session

Python,从另一个类调用类函数

python - Django-值错误: too many values to unpack (expected 2)

python - 为什么我的 if 语句会产生关键错误?

Python UTF-8转换问题

python - 如何修复 django-allauth 返回 KeyError : ['key' ]?

python - 找不到 Pycharm pandas_datareader

Python2.7 : Ensure 3D list of objects are unique

python - Pygame 无法在 Mac 上下载

Django自定义字段-自动添加COLLATE到查询