绕过确认提示进行pip uninstall

我正在尝试在我的超级用户环境中卸载所有django软件包,以确保我的所有webapp依赖项都安装到我的virtualenv。
sudo su
sudo pip freeze | grep -E '^' | xargs pip -q uninstall
但是pip想要确认每个软件包卸载,并且pip似乎没有-y选项。有没有更好的方法来卸载一批python模块?
rm -rf .../site-packages/
是一个正确的方法吗?是否有easy_install替代方案? 或者,最好是强制pip将所有依赖项安装到virtualenv而不是依赖系统python模块来满足这些依赖性,例如:
pip --upgrade install
,但强制安装甚至同样旧的版本来覆盖任何系统模块。我尝试激活我的virtualenv,然后
pip install --upgrade -r requirements.txt
,这似乎安装依赖项,甚至是我的系统路径中存在的依赖项,但我不能确定是否因为我的系统模块已经老了。并且
man pip
似乎不保证这种行为(即安装系统站点包中已存在的相同版本的软件包)。     
已邀请:
从pip版本7.1.2开始,你可以运行
pip uninstall -y <python package>
    
Pip不包括--yes选项(从pip版本1.3.1开始)。 解决方法:管道是的!
$ sudo ls  # enter pw so not prompted again
$ /usr/bin/yes | sudo pip uninstall pymongo
    
  或者,最好强制pip将所有依赖项安装到virtualenv而不是依赖系统python模块来满足这些依赖项, 是。不要使用内置系统安装的软件包太乱。许多系统软件包,特别是OS X(甚至是debian和派生品种)都过分依赖它们。   pip --upgrade install,但强制安装甚至同样旧的版本来覆盖任何系统模块。 如果在venv中安装了一些已经存在于系统包中的软件包,那应该不是什么大问题,特别是如果它们的版本不同。这就是virtualenv的重点。   我尝试激活我的virtualenv,然后点击安装--upgrade -r requirements.txt,这似乎安装了依赖项,甚至是我系统路径中存在的依赖项,但我不能确定是否因为我的系统模块已经过时了。而man pip似乎并不能保证这种行为(即安装系统site-packages中已存在的相同版本的软件包)。 不,除非您使用
--no-site-packages
标志创建它,或者所需版本和现有版本不同,否则它不会在主安装中安装已经存在的软件包。     
Lakshman Prasad是对的,
pip --upgrade
和/或
virtualenv --no-site-packages
是要走的路。卸载系统范围的python模块很糟糕。 pip的
--upgrade
选项会在虚拟环境中安装所需的模块,即使它们已经存在于系统环境中,即使所需的版本或最新的可用版本与系统版本相同。
pip --upgrade install
并且,在创建虚拟环境时使用--no-site-packages选项可确保系统路径中缺少模块的存在可能无法掩盖缺少的依赖项。这有助于在将模块从一个包迁移到另一个包期间暴露出问题,例如pinax.apps.groups - > django-groups,特别是当问题出在django中的load templatetags语句时,它会搜索templatetags目录的所有可用模块以及其中的标记定义。     
pip install -U xxxx 
可以绕过确认     

要回复问题请先登录注册