部署到现有Django应用程序的实时服务器上。这是一个非常老的网站,已有3年以上未更新。
我是按合同聘用的,以使它保持最新状态,其中包括将Django版本升级为最新版本。这破坏了现场需要修复的许多东西。
我进行了测试部署,一切顺利。现在该进行部署了,我遇到了一些问题...。
我要做的第一件事是在服务器上保留当前Django版本的日志,以防万一我们可以回滚任何问题。我尝试登录Python命令提示符并导入Django以查找版本号,但它表示未找到Django。
我一直在寻找,并在pip requirements.txt文件中找到了该版本。
然后,我决定更新服务器上的实际Django版本。更新顺利进行。然后,我检查了实时站点,并且一切都保持不变(旧文件仍然存在)。该网站的大部分都应该已损坏。它无法识别Django中的任何更改。
我认为这样做的原因可能是最后一个承包商使用了virtualenv?这就是为什么它无法识别Django,或者Django更新对实时站点没有任何作用的原因?
这是我想提出这个问题的唯一原因,因为既然有一个pip requirements.txt文件,他可能会用pip安装Django,这意味着Python应该识别到Django的路径。
因此,接下来我将尝试使用命令“ lsvirtualenv”为virtualenv查找源路径。但是当我这样做时,即使这样也会给我一个“找不到命令”错误。
我唯一的猜测是这是virtualenv的旧版本,没有此命令?如果不是这样,我不确定发生了什么。
关于如何找到我可以使用的工具来更新此服务器上的软件包版本的信息的任何建议?
最佳答案
创建自己的virtualenv
如果全部失败,只需从virtualenv
重新创建requirements.txt
并从那里开始
了解旧应用程序是如何启动的
如果您坚持要找到旧版本,那么IMO最直接的方法就是找到生产Django应用程序的运行方式。寻找启动它的bash脚本,一些supervisor
条目等
如果找到启动方式,则可以查明启动它的环境(例如哪个virtualenv)
通过搜索公用文件找到virtualenv
除此之外,您可以使用find
或locate
命令搜索我们已知存在于virtualenv中的文件,例如lib/pythonX.Y/site-packages
,bin/activate
或bin/python
等
关于python - 如何找到virtualenv安装,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35326476/