30 回答 30
This answer is useful
1310
我发现这个片段是一种替代解决方案。与重新制作 virtualenv 相比,删除库更优雅:
pip freeze | xargs pip uninstall -y
如果您通过 VCS 安装了软件包,则需要排除这些行并手动删除软件包(从下面的评论中提升):
pip freeze | grep -v "^-e" | xargs pip uninstall -y
于 2012-06-28T18:32:29.103 回答
This answer is useful
620
这适用于所有 Mac、Windows 和 Linux 系统。获取 requirements.txt 文件中所有 pip 包的列表(注意:如果存在,这将覆盖 requirements.txt,否则将创建新的,如果您不想替换旧的 requirements.txt,请给出不同的文件名在所有以下命令中的地方 requirements.txt)。
pip freeze > requirements.txt
现在要一一删除
pip uninstall -r requirements.txt
如果我们想一次全部删除,那么
pip uninstall -r requirements.txt -y
如果您正在处理具有requirements.txt文件的现有项目并且您的环境已经不同,只需将requirements.txt上述示例替换为toberemoved.txt. 然后,完成上述步骤后,您可以使用requirements.txt更新您现在干净的环境。
对于不创建任何文件的单个命令(如@joeb 建议的那样)。
pip uninstall -y -r <(pip freeze)
于 2016-11-12T18:08:05.140 回答
This answer is useful
148
这适用于最新版本。我认为这是最短和最具声明性的方式。
virtualenv --clear MYENV
但是为什么不直接删除并重新创建 virtualenv 呢?
不变性规则。此外,很难记住其他解决方案使用的所有管道和 grepping。
于 2012-07-26T15:15:15.953 回答
This answer is useful
133
我想将此答案从评论部分中提升出来,因为它是该线程中最优雅的解决方案之一。这个答案的全部功劳归于@joeb。
pip uninstall -y -r <(pip freeze)
这对我来说非常适合在 virtualenv 上下文之外清除我的用户包文件夹的用例,而上述许多答案都无法处理。
编辑:任何人都知道如何使这个命令在 Makefile 中工作?
奖励:一个 bash 别名
为方便起见,我将其添加到我的 bash 配置文件中:
alias pipuninstallall="pip uninstall -y -r <(pip freeze)"
然后运行:
pipuninstallall
pipenv 的替代品
如果你碰巧在使用pipenv,你可以运行:
pipenv uninstall --all
于 2018-03-09T18:51:49.933 回答
This answer is useful
64
其他使用pip list或pip freeze 必须包含的--local答案也将卸载在公共命名空间中找到的包。
所以这是我经常使用的片段
pip freeze --local | xargs pip uninstall -y
参考:pip freeze --help
于 2017-08-03T04:49:25.607 回答
This answer is useful
49
我通过执行以下操作来管理它:
创建reqs.txt使用当前安装的包列表调用的需求文件
pip freeze > reqs.txt
然后从reqs.txt
# -y means remove the package without prompting for confirmation
pip uninstall -y -r reqs.txt
我喜欢这种方法,因为如果你犯了错误,你总是有一个 pip 需求文件可以依靠。它也是可重复的,并且是跨平台的(Windows、Linux、MacOs)。
于 2019-10-29T11:32:57.407 回答
This answer is useful
44
方法 1(带pip freeze)
pip freeze | xargs pip uninstall -y
方法 2(带pip list)
pip list | awk '{print $1}' | xargs pip uninstall -y
方法 3(带virtualenv)
virtualenv --clear MYENV
于 2016-06-05T13:25:34.503 回答
This answer is useful
43
从虚拟环境中删除所有包的最佳方法
视窗:
pip freeze > unins ; pip uninstall -y -r unins ; del unins
Linux:
sudo pip3 freeze > unins ; pip3 uninstall -y -r unins ; rm unins
如果不起作用,请更改;为&&上述命令。
于 2021-05-04T06:30:40.667 回答
This answer is useful
32
在 Windows 上,如果您path的配置正确,您可以使用:
pip freeze > unins && pip uninstall -y -r unins && del unins
对于类 Unix 系统应该是类似的情况:
pip freeze > unins && pip uninstall -y -r unins && rm unins
只是一个警告,这并不完全可靠,因为您可能会遇到诸如“找不到文件”之类的问题,但在某些情况下它可能仍然有效
编辑:为清楚起见:unins是一个任意文件,在执行此命令时将数据写入其中:pip freeze > unins
然后,它依次编写的该文件用于在获得默示同意/事先批准的情况下通过以下方式卸载上述软件包pip uninstall -y -r unins
该文件最终在完成后被删除。
于 2015-12-06T14:01:59.847 回答
This answer is useful
24
我使用 --user 选项卸载用户站点中安装的所有软件包。
pip3 freeze --user | xargs pip3 uninstall -y
于 2020-04-01T07:56:51.140 回答
This answer is useful
19
最快的方法是完全重新制作 virtualenv。我假设您有一个与生产相匹配的 requirements.txt 文件,如果没有:
# On production:
pip freeze > reqs.txt
# On your machine:
rm $VIRTUALENV_DIRECTORY
mkdir $VIRTUALENV_DIRECTORY
pip install -r reqs.txt
于 2012-06-28T15:37:50.017 回答
This answer is useful
18
首先,将所有包添加到requirements.txt
pip freeze > requirements.txt
然后全部删除
pip uninstall -y -r requirements.txt
于 2019-01-08T10:03:21.587 回答
This answer is useful
16
对于 Windows 用户,这是我在Windows PowerShell上使用的
pip uninstall -y (pip freeze)
于 2018-03-23T12:57:37.810 回答
This answer is useful
15
使用virtualenvwrapper函数:
wipeenv
请参阅wipeenv 文档
于 2016-09-10T04:50:48.643 回答
This answer is useful
12
这是我知道的一个老问题,但我确实偶然发现了它,所以为了将来参考你现在可以这样做:
pip uninstall [options]
pip uninstall [options] -r
-r, --需求文件
卸载给定需求文件中列出的所有软件包。此选项可以多次使用。
来自pip 文档版本 8.1
于 2016-03-23T14:33:09.040 回答
This answer is useful
6
(将此添加为答案,因为我没有足够的声誉来评论@blueberryfields 的答案)
@blueberryfields 的答案效果很好,但是如果没有要卸载的软件包,则会失败(如果此“全部卸载”是脚本或 makefile 的一部分,则可能会出现问题)。这可以xargs -r在使用 GNU 版本时解决xargs:
pip freeze --exclude-editable | xargs -r pip uninstall -y
来自man xargs:
-r, --no-run-if-empty
如果标准输入不包含任何非空格,请不要运行该命令。通常,即使没有输入,该命令也会运行一次。此选项是 GNU 扩展。
于 2019-07-05T11:24:03.423 回答
This answer is useful
6
pip3 freeze --local | xargs pip3 uninstall -y
这种情况可能是必须多次运行此命令才能获得一个空的pip3 freeze --local.
于 2019-10-17T18:26:16.080 回答
This answer is useful
2
这适用于我的 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。
于 2021-06-23T11:15:11.480 回答
This answer is useful
2
这是我卸载所有 python 包的最简单方法。
from pip import get_installed_distributions
from os import system
for i in get_installed_distributions():
system("pip3 uninstall {} -y -q".format(i.key))
于 2017-06-18T20:06:42.230 回答
This answer is useful
2
跨平台和在 pipenv 中工作的简单健壮方式是:
pip freeze
pip uninstall -r requirement
通过管道:
pipenv run pip freeze
pipenv run pip uninstall -r requirement
但不会更新 piplock 或 pipfile 所以要注意
于 2019-10-11T18:10:11.737 回答
This answer is useful
1
仅使用跨平台支持pip:
#!/usr/bin/env python
from sys import stderr
from pip.commands.uninstall import UninstallCommand
from pip import get_installed_distributions
pip_uninstall = UninstallCommand()
options, args = pip_uninstall.parse_args([
package.project_name
for package in
get_installed_distributions()
if not package.location.endswith('dist-packages')
])
options.yes = True # Don't confirm before uninstall
# set `options.require_venv` to True for virtualenv restriction
try:
print pip_uninstall.run(options, args)
except OSError as e:
if e.errno != 13:
raise e
print >> stderr, "You lack permissions to uninstall this package.
Perhaps run with sudo? Exiting."
exit(13)
# Plenty of other exceptions can be thrown, e.g.: `InstallationError`
# handle them if you want to.
于 2015-02-21T03:45:48.953 回答
This answer is useful
1
这是对我有用的命令:
pip list | awk '{print $1}' | xargs pip uninstall -y
于 2016-06-02T22:12:19.227 回答
This answer is useful
1
在 Windows 上,如果您的路径配置正确,您可以使用:
pip freeze > unins && pip uninstall -y -r unins && del unins
于 2021-04-19T18:53:35.860 回答
This answer is useful
0
我只是想删除项目安装的包,而不是我安装的其他包(比如neovim,mypy以及pudb 我用于本地开发但不包含在应用程序要求中的东西)。所以我做了:
cat requirements.txt| sed 's/=.*//g' | xargs pip uninstall -y
这对我来说效果很好。
于 2021-01-20T23:39:58.787 回答
This answer is useful
0
选择要从此文件夹中删除的库:
C:\Users\User\AppData\Local\Programs\Python\Python310\Lib\site-packages
于 2021-12-11T09:05:03.380 回答
This answer is useful
0
在Windows 的Command Shellpip freeze | xargs pip uninstall -y中,该命令将不起作用。因此,对于那些使用 Windows 的人,我已经找到了一种替代方法。
将pip已安装包的所有名称从pip freeze命令复制到.txt文件。
然后,转到.txt文件的位置并运行命令pip uninstall -r *textfile.txt*
于 2017-12-26T06:39:02.433 回答
This answer is useful
0
如果您正在使用pew,则可以使用wipeenv命令:
pew wipeenv [env]
于 2019-01-11T10:57:28.873 回答
This answer is useful
0
如果您正在运行virtualenv:
virtualenv --clear
例如,如果您的 virtualenv 是/Users/you/.virtualenvs/projectx,那么您将运行:
virtualenv --clear /Users/you/.virtualenvs/projectx
如果您不知道虚拟环境的位置,您可以which python从激活的虚拟环境中运行以获取路径
于 2016-10-27T21:57:56.507 回答
This answer is useful
-1
就我而言,我不小心使用安装pip在 macOS 上的 Homebrew 在全球范围内安装了许多软件包。恢复到默认包的最简单方法很简单:
$ brew reinstall python
或者,如果您使用的是pip3:
$ brew reinstall python3
于 2017-05-18T21:28:54.763 回答
This answer is useful
-2
Pip 无法知道它安装了哪些软件包以及系统的软件包管理器安装了哪些软件包。为此,您需要做这样的事情
对于基于 rpm 的发行版(将 python2.7 替换为您安装 pip 的 python 版本):
find /usr/lib/python2.7/ |while read f; do
if ! rpm -qf "$f" &> /dev/null; then
echo "$f"
fi
done |xargs rm -fr
对于基于 deb 的分发:
find /usr/lib/python2.7/ |while read f; do
if ! dpkg-query -S "$f" &> /dev/null; then
echo "$f"
fi
done |xargs rm -fr
然后清理剩下的空目录:
find /usr/lib/python2.7 -type d -empty |xargs rm -fr
我发现最佳答案非常具有误导性,因为它会从您的发行版中删除所有(大多数?)python 包,并且可能会让您的系统损坏。
于 2017-10-04T12:47:51.833 回答