我正在尝试修复我的一个virtualenv -我想将所有已安装的库重置为与生产相匹配的库。
有没有一种快速简单的方法来处理皮普?
我正在尝试修复我的一个virtualenv -我想将所有已安装的库重置为与生产相匹配的库。
有没有一种快速简单的方法来处理皮普?
当前回答
这适用于我的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。
其他回答
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包,可能会给你留下一个坏掉的系统。
在Windows的命令Shell中,pip freeze | xargs pip uninstall -y命令不起作用。所以对于那些使用Windows的人,我想出了另一种方法。
将pip freeze命令中所有已安装的pip包的名称复制到一个.txt文件中。 然后,找到。txt文件所在的位置,运行pip uninstall -r *textfile.txt*命令
简单有力的方法 跨平台的 在pipenv的工作也是:
pip freeze
pip uninstall -r requirement
pipenv:
pipenv run pip freeze
pipenv run pip uninstall -r requirement
但不会更新piplock或pipfile,所以要注意
我知道这是一个老问题,但我确实偶然发现了它,所以作为将来的参考,你现在可以这样做:
pip uninstall [options] <package> ...
pip uninstall [options] -r <requirements file> ...
-r,——需求文件 卸载给定需求文件中列出的所有包。此选项可多次使用。
来自PIP文档8.1版
这在Windows上很管用:
pip uninstall -y (pip freeze)