如何重置使用sudo安装的Python包的OS:X安装?

9

假设有人不了解Python中的虚拟环境,使用sudo pip install在OS:X上安装了很多包。现在他们面临管理包版本的问题。

如果有人在学习之前这样做了,想要轻松地删除所有非虚拟环境中安装的包,而不破坏任何默认安装的内容,该怎么办呢?

请注意,这包括多个程序(如nosetests),而不仅限于库。似乎我可以使用--no-site-packages创建一个虚拟环境,至少可以解决包的问题(假定我清除我的PYTHONPATH)。但是实际的PATH似乎也让我看到了我安装的可执行文件。


3
问候?(用于代替英语中的“Asking for a friend?”,表示某人在问一个问题,但可能并非为自己而问,而是为朋友或他人而问。) - Daniel Roseman
2个回答

5

我的OS:X基础安装中没有任何使用pip安装的内容。这意味着,您可以在OSX上卸载pip的所有内容而不必“担心”-就实际系统性能而言。但如果您依赖全局pip包,则可能会影响您的日常活动。

您可以查看完整列表以验证已安装的软件包:

pip freeze

这个返回的是用户安装包,也就是说你可以“安全地”将其作为参数传递给pip uninstall:

pip freeze | xargs sudo pip uninstall -y

这将卸载您机器上使用pip安装的所有项目。

如果您的PYTHONPATH变量设置为本地安装目录之一,则可能会在某些虚拟环境中意外使用它们。 假设您没有在虚拟环境中覆盖PATH变量,那么pip安装的任何可执行软件包也将在虚拟环境中可见。

在我的情况下,我只需要重新安装virutalenv包装器:

pip install virtualenvwrapper

这对我没有用。但是对于未来的观众,这可能有用:#!/bin/bash for i in $( pip freeze ); do sudo pip uninstall -y $i done。在这里找到它herehere - armand

0

有时候你可能会在没有使用sudo的情况下安装了Python包,并希望清除基本的Python安装。
这种情况下,可以像这样操作:

python -m pip freeze | xargs python -m pip uninstall -y

如果有多个Python版本需要清理,只需分别使用相应版本的命令,将python替换为python3.x(x-所需版本)即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接