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

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


当前回答

在Windows上,如果你的路径配置正确,你可以使用:

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

其他回答

在Windows的命令Shell中,pip freeze | xargs pip uninstall -y命令不起作用。所以对于那些使用Windows的人,我想出了另一种方法。

将pip freeze命令中所有已安装的pip包的名称复制到一个.txt文件中。 然后,找到。txt文件所在的位置,运行pip uninstall -r *textfile.txt*命令

我找到了这个片段作为替代解决方案。这是一个比重做virtualenv更优雅的删除库:

pip freeze | xargs pip uninstall -y

如果你有通过VCS安装的包,你需要排除这些行并手动删除包(从下面的注释中提升):

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

如果你有直接从github/gitlab安装的包,这些包将有@。 如:

django @ git+https://github.com/django.git@<sha>

您可以添加cut -d "@" -f1来获得卸载所需的包名。

pip freeze | cut -d "@" -f1 | xargs pip uninstall -y

我做到了以下几点:

用当前安装的包列表创建名为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)。

这是对我有用的命令:

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

最快的方法是完全重做virtualenv。我假设你有一个符合生产的requirements.txt文件,如果没有的话:

# On production:
pip freeze > reqs.txt

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