diff -r f9bb7c8c60d8 -r 21ea4fd50b0a eric6/PipInterface/PipPackagesWidget.py --- a/eric6/PipInterface/PipPackagesWidget.py Fri Jul 03 17:37:11 2020 +0200 +++ b/eric6/PipInterface/PipPackagesWidget.py Sat Jul 04 11:34:37 2020 +0200 @@ -26,6 +26,7 @@ from .Ui_PipPackagesWidget import Ui_PipPackagesWidget import UI.PixmapCache +import Globals class PipPackagesWidget(QWidget, Ui_PipPackagesWidget): @@ -154,6 +155,24 @@ return available + def __availablePipVersion(self): + """ + Private method to get the pip version of the selected environment. + + @return tuple containing the version number or tuple with all zeros + in case pip is not available + @rtype tuple of int + """ + pipVersionTuple = (0, 0, 0) + venvName = self.environmentsComboBox.currentText() + if venvName: + pipList = self.packagesList.findItems( + "pip", Qt.MatchExactly | Qt.MatchCaseSensitive) + if len(pipList) > 0: + pipVersionTuple = Globals.versionToTuple(pipList[0].text(1)) + + return pipVersionTuple + ####################################################################### ## Slots handling widget signals below ####################################################################### @@ -974,6 +993,7 @@ """ enable = bool(self.environmentsComboBox.currentText()) enablePip = self.__isPipAvailable() + enablePipCache = self.__availablePipVersion() >= (20, 1, 0) self.__installPipAct.setEnabled(not enablePip) self.__installPipUserAct.setEnabled(not enablePip) @@ -986,10 +1006,10 @@ self.__uninstallRequirementsAct.setEnabled(enablePip) self.__generateRequirementsAct.setEnabled(enablePip) - self.__cacheInfoAct.setEnabled(enablePip) - self.__cacheShowListAct.setEnabled(enablePip) - self.__cacheRemoveAct.setEnabled(enablePip) - self.__cachePurgeAct.setEnabled(enablePip) + self.__cacheInfoAct.setEnabled(enablePipCache) + self.__cacheShowListAct.setEnabled(enablePipCache) + self.__cacheRemoveAct.setEnabled(enablePipCache) + self.__cachePurgeAct.setEnabled(enablePipCache) self.__editVirtualenvConfigAct.setEnabled(enable)