【发布时间】:2022-01-23 03:57:14
【问题描述】:
我在全局系统环境而不是我的虚拟环境 (virtualenv) 中安装了我需要的包(依赖项),因为我在虚拟环境之外使用了命令 pip install <package-name>。
所以我想知道如何从它们中列出并将它们安装在我的任何 virtualenvs 中?
【问题讨论】:
标签: python package virtualenv requirements.txt pipfile
我在全局系统环境而不是我的虚拟环境 (virtualenv) 中安装了我需要的包(依赖项),因为我在虚拟环境之外使用了命令 pip install <package-name>。
所以我想知道如何从它们中列出并将它们安装在我的任何 virtualenvs 中?
【问题讨论】:
标签: python package virtualenv requirements.txt pipfile
这在您错误地在全局系统环境而不是 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。
【讨论】:
您可以在您的全局系统环境中创建文件,该文件的格式如下:
my_backages.txt
$ pip install -U Flask-SQLAlchemy
$ pip install --upgrade
$ pip install flask
然后你可以使用 pipfile 作为下一个:
$ pip install -r my_backages.txt
【讨论】: