如何将依赖项(包)从全局系统环境导入(安装)到虚拟环境
Posted
技术标签:
【中文标题】如何将依赖项(包)从全局系统环境导入(安装)到虚拟环境【英文标题】:How to import (install) dependencies (packages) from a global system environment to a virtual environment 【发布时间】:2022-01-23 03:57:14 【问题描述】:我在全局系统环境而不是我的虚拟环境 (virtualenv) 中安装了我需要的包(依赖项),因为我在虚拟环境之外使用了命令 pip install <package-name>
。
所以我想知道如何从它们中列出并将它们安装在我的任何 virtualenvs 中?
【问题讨论】:
【参考方案1】:这在您错误地在全局系统环境而不是 virtualenv 中安装了一些包(依赖项)的情况下很有用。
例如使用命令“pip install”,而不是“pipenv install”(在虚拟环境之外)。
所以解决办法是:
在全局系统环境中(在任何 virtualenv 之外),从所有已安装的包中创建一个“requirements.txt”文件:
$ pip freeze > requirements.txt
通过在上面创建的文件“requirements.txt”存在的根目录中运行以下命令,将已安装的依赖项从创建的“requirements.txt”文件导入到Pipfile;但首先检查:
a) 如果 Pipfile 不存在:
$ pipenv install
b) 如果 Pipfile 确实存在(即已经创建了 virtualenv):
$ pipenv install -r requirements.txt
然后您的包列表文件“Pipfile”和“Pipfile.lock”将被更新并锁定。
但我个人建议为避免此问题发生,请始终使用命令
$ pipenv install
而不是$ pip install
。
【讨论】:
【参考方案2】:您可以在您的全局系统环境中创建文件,该文件的格式如下:
my_backages.txt
$ pip install -U Flask-SQLAlchemy
$ pip install --upgrade
$ pip install flask
然后你可以使用 pipfile 作为下一个:
$ pip install -r my_backages.txt
【讨论】:
以上是关于如何将依赖项(包)从全局系统环境导入(安装)到虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章