django - 如何从不可用的 virtualenv 中拯救 django 项目
问题描述
我有一个使用 django/wagtail 的基本站点,我在 virtualenv 中拥有。我主要是在一个带有 ARM 处理器的 nas 设备上工作。我最近将它转移到我的 x86-64 笔记本电脑上的虚拟机上,但无法使用它。
我明白了为什么,明白了 virtualenv 不是一种打包机制的艰难方式。我只是想知道拯救 django 项目的“最佳”方法是什么,并且可能以某种方式获取安装到 virtualenv 的 pip 包列表(因为 pip freeze -r 由于 pip 二进制文件用于 ARM 而不会运行)。
有没有一种简单的方法可以完成我的要求,或者我最好尝试复制 django 文件并重新创建 virtualenv?
解决方案
通常你会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
推荐阅读
- c# - 如何向用户显示在前端数据库中保存为“是”的复选框?
- kotlin - android/kotlin-使用compositeDisposal(RXjava2)进行改造,单击后退按钮时不会进入响应/可抛出块
- angular - 即使模型没有发生变化,Angular ngStyle 也会无休止地运行
- postgresql - 元数据库自定义列从文本转换为整数
- javascript - 根据键的存在更新对象 else 形成一个新对象:Javascript
- javascript - 如何自动创建本地href链接?
- javascript - Chrome 浏览器未在 puppeteeer 上打开
- javascript - 动态下载数据并设置为 DevExtreme TextBox
- php - 保存属性类型 int google 数据存储
- node.js - 通过 chatbot-bridge 版本 2 api 连接到 Orchestrator 时出现问题。(节点 JS)