删除安装所有包的最简单方法是什么? pip?

我正试图修复我的一个 virtualenv - 我想将所有已建立的库重置为与生产相对应的人。

是否有一种快速简便的方法来实现 pip?
已邀请:

郭文康

赞同来自:

我发现这个片段作为替代解决方案。 这是一个比改变更优雅的图书馆删除 virtualenv:


pip freeze | xargs pip uninstall -y


如果您有通过包装的包 VCS, 您需要排除这些行并手动删除包 /见下面的评论/:


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

郭文康

赞同来自:

它将适用于所有系统 Mac, Windows 和 Linux.
获取所有包的列表 pip 在文件中 requirements.txt /注意:它将重新启动 requirements.txt, 如果还有另一个,创建一个新的,还有,如果你不想替换旧的 requirements.txt, 然后在下一个团队中给另一个文件名 all 反而 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 
<div class="answer_text">
它适用于后者。 我认为这是做到这一点的最短和宣言的方式。


[code]virtualenv --clear MYENV


但通常我只是删除和重新创建 virtualenv, 自没有变化的规则!
</div>
<div class="answer_text">
我想从评论部分提出这个答案,因为它是流中最优雅的解决方案之一。 此答案的全部优点属于

.


pip uninstall -y -r 
<div class="answer_text">
其他答案使用
[code]pip list

或者
pip freeze

,

必须包括
--local


, 否则,他还将删除常见名称空间中的数据包。

所以,这是我经常使用的片段


pip freeze --local | xargs pip uninstall -y


关联:
pip freeze --help


</div>
<div class="answer_text">
方法 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


</div>
<div class="answer_text">
我通过以下内容应对这一点:

创建命名要求的文件

reqs.txt

使用已安装的包列表


pip freeze &gt; reqs.txt


然后删除所有包裹

reqs.txt


pip uninstall \
-y # remove the package with prompting for confirmation
-r reqs.txt


我喜欢这种方法,因为你总是有一个请求文件 pip, 如果您出错,您可以返回。 它也重演。
</div>
<div class="answer_text">
最快的方式是完全翻拍 virtualenv. 我猜你有一个文件 requirements.txt, 这对应于生产,如果不是:


# On production:
pip freeze &gt; reqs.txt

# On your machine:
rm $VIRTUALENV_DIRECTORY
mkdir $VIRTUALENV_DIRECTORY
pip install -r reqs.txt


</div>
<div class="answer_text">
在 Windows, 如果是你的
path

正确设置,可以使用:


pip freeze &gt; unins &amp;&amp; pip uninstall -y -r unins &amp;&amp; del unins


它应该类似于类似UNIX的系统:


pip freeze &gt; unins &amp;&amp; pip uninstall -y -r unins &amp;&amp; rm unins


只是一个警告,它不完全可靠,因为您可能会遇到这样的问题 "文件未找到", 尽管如此,在某些情况下它可以工作

EDIT: 为了清楚起见:
unins

- 这是一个任意文件,在执行此命令时会记录数据的任意文件:
pip freeze &gt; unins


然后,他依次写的文件将用于删除上述数据包,默示的同意/初步批准
pip uninstall -y -r unins


完成工作后最终删除该文件。
</div>
<div class="answer_text">
使用功能 virtualenvwrapper:


wipeenv


厘米
http://virtualenvwrapper.readt ... peenv
wipeenv
</div>
<div class="answer_text">
首先,添加整个包装
requirements.txt



pip freeze &gt; requirements.txt


然后删除一切


pip uninstall -y -r requirements.txt


</div>
<div class="answer_text">
这是我知道的古老问题,但我真的遇到了它,所以现在你可以做到的进一步用途:


pip uninstall [options] <package> ...
pip uninstall [options] -r <requirements file=""> ...


-r, - 文件要求

删除此要求文件中列出的所有数据包。 此选项可以多次使用。


https://pip.pypa.io/en/stable/ ... tall/
pip 8.1
</requirements></package></div>
<div class="answer_text">
为了 Windows 用户是我使用的

Windows PowerShell


pip uninstall -y /pip freeze/


</div>
<div class="answer_text">
/添加它作为答案,因为我没有足够的声誉来评论答案 @blueberryfields/

回答 @blueberryfields 适用于,但如果没有包删除,则失败 /如果这个问题可能是一个问题 "uninstall all" 是脚本的一部分或 makefile/. 这可以解决
xargs -r

使用版本时 GNU
xargs

:


pip freeze --exclude-editable | xargs -r pip uninstall -y


经过
man xargs

:

-r, --no-run-if-empty

如果标准输入不包含空格,则不执行命令。 通常该命令是一次执行一次,即使
入口缺失。 此参数是一个扩展名。 GNU.
</div>
<div class="answer_text">

pip3 freeze --local | xargs pip3 uninstall -y


您可能必须多次执行此命令以获得空
pip3 freeze --local

.
</div>
<div class="answer_text">
我使用该选项 --user 删除用户网站上安装的所有包。


pip3 freeze --user | xargs pip3 uninstall -y


</div>
<div class="answer_text">
这是我删除所有包的最简单方法。 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//


</div>
<div class="answer_text">
仅使用跨平台支持
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 &gt;&gt; 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.


</div>
<div class="answer_text">
这是一支适合我的团队:


pip list | awk '{print $1}' | xargs pip uninstall -y


</div>
<div class="answer_text">
简单可靠的方式
跨平台
工作和工作 pipenv 还:


pip freeze 
pip uninstall -r requirement


经过 pipenv:


pipenv run pip freeze 
pipenv run pip uninstall -r requirement


但不会更新 piplock 或者 pipfile 所以请注意
</div>
<div class="answer_text">
在我的情况下,我不小心安装了世界上安装了几个包装的包装
pip

在 macOS. 返回默认包的最简单方法很简单:


$ brew reinstall python


或者如果你用过
pip3

:


$ brew reinstall python3


</div>
<div class="answer_text">
如果你正在工作
virtualenv

:


virtualenv --clear 


例如,如果你的 virtualenv 掠夺
/Users/you/.virtualenvs/projectx

, 然后你会运行:


virtualenv --clear /Users/you/.virtualenvs/projectx


如果你不知道你的虚拟位置 env, 你可以运行
which python

来自激活的虚拟 env, 达到方式
</div>
<div class="answer_text">


团队 Shell

的 Windows 团队
pip freeze | xargs pip uninstall -y

不管用。 所以对那些使用的人 Windows, 我提出了另一种方法来做。

复制已安装软件包的所有名称。

pip

来自团队
pip freeze




文件 .txt.

然后转到文件的位置

.txt

并执行命令
pip uninstall -r *textfile.txt*


</div>
<div class="answer_text">
如果您正在使用
pew

, 您可以使用该命令 wipeenv:


pew wipeenv [env]


</div>
<div class="answer_text">
Pip 它没有机会找出它们已安装的软件包以及系统包的管理器安装了哪些数据包。 为此,您需要做这样的事情

对于基于的分布 rpm /代替 python2.7 在你的版本上 python, 您安装的哪个 pip/:


find /usr/lib/python2.7/ |while read f; do
if ! rpm -qf "$f" &amp;&gt; /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" &amp;&gt; /dev/null; then
echo "$f"
fi
done |xargs rm -fr


然后清除剩余的空目录:


find /usr/lib/python2.7 -type d -empty |xargs rm -fr


我发现顶级答案非常误导,因为它将删除一切 /最多?/ 包 python 从你的分发,可能会让你带一个破碎的系统。
</div>
</div>

小明明

赞同来自:

它适用于后者。 我认为这是做到这一点的最短和宣言的方式。


virtualenv --clear MYENV


但通常我只是删除和重新创建 virtualenv, 自没有变化的规则!

奔跑吧少年

赞同来自:

我想从评论部分提出这个答案,因为它是流中最优雅的解决方案之一。 此答案的全部优点属于

.


pip uninstall -y -r 
<div class="answer_text">
其他答案使用
[code]pip list

或者
pip freeze

,

必须包括
--local


, 否则,他还将删除常见名称空间中的数据包。

所以,这是我经常使用的片段


pip freeze --local | xargs pip uninstall -y


关联:
pip freeze --help


</div>
<div class="answer_text">
方法 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


</div>
<div class="answer_text">
我通过以下内容应对这一点:

创建命名要求的文件

reqs.txt

使用已安装的包列表


pip freeze &gt; reqs.txt


然后删除所有包裹

reqs.txt


pip uninstall \
-y # remove the package with prompting for confirmation
-r reqs.txt


我喜欢这种方法,因为你总是有一个请求文件 pip, 如果您出错,您可以返回。 它也重演。
</div>
<div class="answer_text">
最快的方式是完全翻拍 virtualenv. 我猜你有一个文件 requirements.txt, 这对应于生产,如果不是:


# On production:
pip freeze &gt; reqs.txt

# On your machine:
rm $VIRTUALENV_DIRECTORY
mkdir $VIRTUALENV_DIRECTORY
pip install -r reqs.txt


</div>
<div class="answer_text">
在 Windows, 如果是你的
path

正确设置,可以使用:


pip freeze &gt; unins &amp;&amp; pip uninstall -y -r unins &amp;&amp; del unins


它应该类似于类似UNIX的系统:


pip freeze &gt; unins &amp;&amp; pip uninstall -y -r unins &amp;&amp; rm unins


只是一个警告,它不完全可靠,因为您可能会遇到这样的问题 "文件未找到", 尽管如此,在某些情况下它可以工作

EDIT: 为了清楚起见:
unins

- 这是一个任意文件,在执行此命令时会记录数据的任意文件:
pip freeze &gt; unins


然后,他依次写的文件将用于删除上述数据包,默示的同意/初步批准
pip uninstall -y -r unins


完成工作后最终删除该文件。
</div>
<div class="answer_text">
使用功能 virtualenvwrapper:


wipeenv


厘米
http://virtualenvwrapper.readt ... peenv
wipeenv
</div>
<div class="answer_text">
首先,添加整个包装
requirements.txt



pip freeze &gt; requirements.txt


然后删除一切


pip uninstall -y -r requirements.txt


</div>
<div class="answer_text">
这是我知道的古老问题,但我真的遇到了它,所以现在你可以做到的进一步用途:


pip uninstall [options] <package> ...
pip uninstall [options] -r <requirements file=""> ...


-r, - 文件要求

删除此要求文件中列出的所有数据包。 此选项可以多次使用。


https://pip.pypa.io/en/stable/ ... tall/
pip 8.1
</requirements></package></div>
<div class="answer_text">
为了 Windows 用户是我使用的

Windows PowerShell


pip uninstall -y /pip freeze/


</div>
<div class="answer_text">
/添加它作为答案,因为我没有足够的声誉来评论答案 @blueberryfields/

回答 @blueberryfields 适用于,但如果没有包删除,则失败 /如果这个问题可能是一个问题 "uninstall all" 是脚本的一部分或 makefile/. 这可以解决
xargs -r

使用版本时 GNU
xargs

:


pip freeze --exclude-editable | xargs -r pip uninstall -y


经过
man xargs

:

-r, --no-run-if-empty

如果标准输入不包含空格,则不执行命令。 通常该命令是一次执行一次,即使
入口缺失。 此参数是一个扩展名。 GNU.
</div>
<div class="answer_text">

pip3 freeze --local | xargs pip3 uninstall -y


您可能必须多次执行此命令以获得空
pip3 freeze --local

.
</div>
<div class="answer_text">
我使用该选项 --user 删除用户网站上安装的所有包。


pip3 freeze --user | xargs pip3 uninstall -y


</div>
<div class="answer_text">
这是我删除所有包的最简单方法。 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//


</div>
<div class="answer_text">
仅使用跨平台支持
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 &gt;&gt; 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.


</div>
<div class="answer_text">
这是一支适合我的团队:


pip list | awk '{print $1}' | xargs pip uninstall -y


</div>
<div class="answer_text">
简单可靠的方式
跨平台
工作和工作 pipenv 还:


pip freeze 
pip uninstall -r requirement


经过 pipenv:


pipenv run pip freeze 
pipenv run pip uninstall -r requirement


但不会更新 piplock 或者 pipfile 所以请注意
</div>
<div class="answer_text">
在我的情况下,我不小心安装了世界上安装了几个包装的包装
pip

在 macOS. 返回默认包的最简单方法很简单:


$ brew reinstall python


或者如果你用过
pip3

:


$ brew reinstall python3


</div>
<div class="answer_text">
如果你正在工作
virtualenv

:


virtualenv --clear 


例如,如果你的 virtualenv 掠夺
/Users/you/.virtualenvs/projectx

, 然后你会运行:


virtualenv --clear /Users/you/.virtualenvs/projectx


如果你不知道你的虚拟位置 env, 你可以运行
which python

来自激活的虚拟 env, 达到方式
</div>
<div class="answer_text">


团队 Shell

的 Windows 团队
pip freeze | xargs pip uninstall -y

不管用。 所以对那些使用的人 Windows, 我提出了另一种方法来做。

复制已安装软件包的所有名称。

pip

来自团队
pip freeze




文件 .txt.

然后转到文件的位置

.txt

并执行命令
pip uninstall -r *textfile.txt*


</div>
<div class="answer_text">
如果您正在使用
pew

, 您可以使用该命令 wipeenv:


pew wipeenv [env]


</div>
<div class="answer_text">
Pip 它没有机会找出它们已安装的软件包以及系统包的管理器安装了哪些数据包。 为此,您需要做这样的事情

对于基于的分布 rpm /代替 python2.7 在你的版本上 python, 您安装的哪个 pip/:


find /usr/lib/python2.7/ |while read f; do
if ! rpm -qf "$f" &amp;&gt; /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" &amp;&gt; /dev/null; then
echo "$f"
fi
done |xargs rm -fr


然后清除剩余的空目录:


find /usr/lib/python2.7 -type d -empty |xargs rm -fr


我发现顶级答案非常误导,因为它将删除一切 /最多?/ 包 python 从你的分发,可能会让你带一个破碎的系统。
</div>

郭文康

赞同来自:

其他答案使用
pip list

或者
pip freeze

,

必须包括
--local


, 否则,他还将删除常见名称空间中的数据包。

所以,这是我经常使用的片段


pip freeze --local | xargs pip uninstall -y


关联:
pip freeze --help

风见雨下

赞同来自:

方法 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

奔跑吧少年

赞同来自:

我通过以下内容应对这一点:

创建命名要求的文件

reqs.txt

使用已安装的包列表


pip freeze > reqs.txt


然后删除所有包裹

reqs.txt


pip uninstall \
-y # remove the package with prompting for confirmation
-r reqs.txt


我喜欢这种方法,因为你总是有一个请求文件 pip, 如果您出错,您可以返回。 它也重演。

风见雨下

赞同来自:

最快的方式是完全翻拍 virtualenv. 我猜你有一个文件 requirements.txt, 这对应于生产,如果不是:


# On production:
pip freeze > reqs.txt

# On your machine:
rm $VIRTUALENV_DIRECTORY
mkdir $VIRTUALENV_DIRECTORY
pip install -r reqs.txt

奔跑吧少年

赞同来自:

在 Windows, 如果是你的
path

正确设置,可以使用:


pip freeze > unins && pip uninstall -y -r unins && del unins


它应该类似于类似UNIX的系统:


pip freeze > unins && pip uninstall -y -r unins && rm unins


只是一个警告,它不完全可靠,因为您可能会遇到这样的问题 "文件未找到", 尽管如此,在某些情况下它可以工作

EDIT: 为了清楚起见:
unins

- 这是一个任意文件,在执行此命令时会记录数据的任意文件:
pip freeze > unins


然后,他依次写的文件将用于删除上述数据包,默示的同意/初步批准
pip uninstall -y -r unins


完成工作后最终删除该文件。

石油百科

赞同来自:

使用功能 virtualenvwrapper:


wipeenv


厘米
http://virtualenvwrapper.readt ... peenv
wipeenv

奔跑吧少年

赞同来自:

首先,添加整个包装
requirements.txt



pip freeze > requirements.txt


然后删除一切


pip uninstall -y -r requirements.txt

二哥

赞同来自:

这是我知道的古老问题,但我真的遇到了它,所以现在你可以做到的进一步用途:


pip uninstall [options] <package> ...
pip uninstall [options] -r <requirements file=""> ...


-r, - 文件要求

删除此要求文件中列出的所有数据包。 此选项可以多次使用。


https://pip.pypa.io/en/stable/ ... tall/
pip 8.1
</requirements></package>

二哥

赞同来自:

为了 Windows 用户是我使用的

Windows PowerShell


pip uninstall -y /pip freeze/

詹大官人

赞同来自:

/添加它作为答案,因为我没有足够的声誉来评论答案 @blueberryfields/

回答 @blueberryfields 适用于,但如果没有包删除,则失败 /如果这个问题可能是一个问题 "uninstall all" 是脚本的一部分或 makefile/. 这可以解决
xargs -r

使用版本时 GNU
xargs

:


pip freeze --exclude-editable | xargs -r pip uninstall -y


经过
man xargs

:

-r, --no-run-if-empty

如果标准输入不包含空格,则不执行命令。 通常该命令是一次执行一次,即使
入口缺失。 此参数是一个扩展名。 GNU.

奔跑吧少年

赞同来自:

pip3 freeze --local | xargs pip3 uninstall -y


您可能必须多次执行此命令以获得空
pip3 freeze --local

.

董宝中

赞同来自:

我使用该选项 --user 删除用户网站上安装的所有包。


pip3 freeze --user | xargs pip3 uninstall -y

小姐请别说爱

赞同来自:

这是我删除所有包的最简单方法。 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//

江南孤鹜

赞同来自:

仅使用跨平台支持
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.

诸葛浮云

赞同来自:

这是一支适合我的团队:


pip list | awk '{print $1}' | xargs pip uninstall -y

三叔

赞同来自:

简单可靠的方式
跨平台
工作和工作 pipenv 还:


pip freeze 
pip uninstall -r requirement


经过 pipenv:


pipenv run pip freeze 
pipenv run pip uninstall -r requirement


但不会更新 piplock 或者 pipfile 所以请注意

裸奔

赞同来自:

在我的情况下,我不小心安装了世界上安装了几个包装的包装
pip

在 macOS. 返回默认包的最简单方法很简单:


$ brew reinstall python


或者如果你用过
pip3

:


$ brew reinstall python3

风见雨下

赞同来自:

如果你正在工作
virtualenv

:


virtualenv --clear 


例如,如果你的 virtualenv 掠夺
/Users/you/.virtualenvs/projectx

, 然后你会运行:


virtualenv --clear /Users/you/.virtualenvs/projectx


如果你不知道你的虚拟位置 env, 你可以运行
which python

来自激活的虚拟 env, 达到方式

窦买办

赞同来自:



团队 Shell

的 Windows 团队
pip freeze | xargs pip uninstall -y

不管用。 所以对那些使用的人 Windows, 我提出了另一种方法来做。

复制已安装软件包的所有名称。

pip

来自团队
pip freeze




文件 .txt.

然后转到文件的位置

.txt

并执行命令
pip uninstall -r *textfile.txt*

窦买办

赞同来自:

如果您正在使用
pew

, 您可以使用该命令 wipeenv:


pew wipeenv [env]

卫东

赞同来自:

Pip 它没有机会找出它们已安装的软件包以及系统包的管理器安装了哪些数据包。 为此,您需要做这样的事情

对于基于的分布 rpm /代替 python2.7 在你的版本上 python, 您安装的哪个 pip/:


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 从你的分发,可能会让你带一个破碎的系统。

要回复问题请先登录注册