我正在尝试修复我的一个virtualenv -我想将所有已安装的库重置为与生产相匹配的库。

有没有一种快速简单的方法来处理皮普?


当前回答

这将适用于所有的Mac, Windows和Linux系统。 要在requirements.txt文件中获取所有pip包的列表(注意:如果requirements.txt存在,这将覆盖requirements.txt,否则将创建一个新的,如果你不想替换旧的requirements.txt,那么在all following命令中在place requirements.txt中输入不同的文件名)。

pip freeze > requirements.txt

现在逐个移除

pip uninstall -r requirements.txt

如果我们想一次性全部移除

pip uninstall -r requirements.txt -y

如果您正在一个已有的项目中工作,该项目有一个requirements.txt文件,而您的环境已经发生了分歧,只需将上面示例中的requirements.txt替换为tobermoved .txt即可。然后,一旦您完成了上面的步骤,您就可以使用requirements.txt来更新您现在干净的环境。

对于单个命令,而不创建任何文件(正如@joeb建议的那样)。

pip uninstall -y -r <(pip freeze)

其他回答

这适用于我的windows系统

pip freeze > packages.txt && pip uninstall -y -r packages.txt && del packages.txt

第一部分pip freeze > packages.txt创建一个文本文件,其中包含使用pip安装的包的列表以及版本号

第二部分pip uninstall -y -r packages.txt删除已安装的所有软件包,不需要确认提示。

第三部分del packages.txt删除刚刚创建的packages.txt。

这适用于最新版本。我认为这是最简洁明了的表达方式。

virtualenv --clear MYENV

但是为什么不直接删除并重新创建virtualenv呢?

不变性规则。此外,很难记住所有的管道和其他解决方案使用。

我找到了这个片段作为替代解决方案。这是一个比重做virtualenv更优雅的删除库:

pip freeze | xargs pip uninstall -y

如果你有通过VCS安装的包,你需要排除这些行并手动删除包(从下面的注释中提升):

pip freeze | grep -v "^-e" | xargs pip uninstall -y

如果你有直接从github/gitlab安装的包,这些包将有@。 如:

django @ git+https://github.com/django.git@<sha>

您可以添加cut -d "@" -f1来获得卸载所需的包名。

pip freeze | cut -d "@" -f1 | xargs pip uninstall -y

我使用——user选项卸载安装在用户站点上的所有包。

pip3 freeze --user | xargs pip3 uninstall -y

对于Windows用户,这是我在Windows PowerShell上使用的

 pip uninstall -y (pip freeze)