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

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


当前回答

首先,将所有包添加到requirements.txt中

pip freeze > requirements.txt

然后移除所有

pip uninstall -y -r requirements.txt 

其他回答

使用virtualenvwrapper函数:

wipeenv

参见wipeenv文档

如果你正在使用pew,你可以使用wipeenv命令:

皮尤wipeenv[环境]

pip uninstall `pip freeze --user`

——user选项防止系统安装的包包含在清单中,从而避免/usr/lib和distutils权限错误。

简单有力的方法 跨平台的 在pipenv的工作也是:

pip freeze 
pip uninstall -r requirement

pipenv:

pipenv run pip freeze 
pipenv run pip uninstall -r requirement

但不会更新piplock或pipfile,所以要注意

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包,可能会给你留下一个坏掉的系统。