首页 > 解决方案 > 如何从不可用的 virtualenv 中拯救 django 项目

问题描述

我有一个使用 django/wagtail 的基本站点,我在 virtualenv 中拥有。我主要是在一个带有 ARM 处理器的 nas 设备上工作。我最近将它转移到我的 x86-64 笔记本电脑上的虚拟机上,但无法使用它。

我明白了为什么,明白了 virtualenv 不是一种打包机制的艰难方式。我只是想知道拯救 django 项目的“最佳”方法是什么,并且可能以某种方式获取安装到 virtualenv 的 pip 包列表(因为 pip freeze -r 由于 pip 二进制文件用于 ARM 而不会运行)。

有没有一种简单的方法可以完成我的要求,或者我最好尝试复制 django 文件并重新创建 virtualenv?

标签: djangovirtualenvwagtail

解决方案


通常你会requirements.txt在你的项目中创建一个文件,并与安装的包保持同步。https://pip.pypa.io/en/stable/user_guide/#requirements-files

每次pip install some_package您都必须将该包添加到 requirements.txt。确保您固定版本。例如 Wagtailpip install wagtail的安装运行。你会看到它选择了最新的。例如“2.1”。添加wagtail==2.1到您的 requirements.txt

请注意,这pip freeze将转储所有已安装的软件包。但通常您只会将“顶级”包(您安装的包)放在 requirements.txt 中,而不是将包放在依赖关系树中。因为当您升级“顶级”包时,依赖关系可能会发生变化。

回答你的问题:

创建一个新的虚拟环境。检查损坏的 virtualenv 的 site-packages 目录。所有已安装(但已损坏)的软件包都在那里。包括使用过的版本。将它们全部安装在新的环境中。例如pip install wagtail==2.1


推荐阅读