pip Interface eric7

Wed, 23 Mar 2022 20:21:42 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 23 Mar 2022 20:21:42 +0100
branch
eric7
changeset 8997
d8946c2a22b5
parent 8996
62bd225b489f
child 8998
4644064d4454

pip Interface
- added a widget to show a package dependency tree

docs/changelog file | annotate | diff | comparison | revisions
eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.PipInterface.Pip.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html file | annotate | diff | comparison | revisions
eric7/PipInterface/Pip.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipPackagesWidget.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipPackagesWidget.ui file | annotate | diff | comparison | revisions
eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
eric7/icons/breeze-dark/viewListTree.svg file | annotate | diff | comparison | revisions
eric7/icons/breeze-light/viewListTree.svg file | annotate | diff | comparison | revisions
eric7/icons/oxygen/viewListTree.png file | annotate | diff | comparison | revisions
diff -r 62bd225b489f -r d8946c2a22b5 docs/changelog
--- a/docs/changelog	Tue Mar 22 19:31:29 2022 +0100
+++ b/docs/changelog	Wed Mar 23 20:21:42 2022 +0100
@@ -7,6 +7,7 @@
   -- added capability to upgrade eric from within eric
 - pip Interface
   -- added a vulnerability check for installed packages based on "Safety DB"
+  -- added a widget to show a package dependency tree
 - Third Party packages
   -- upgraded coverage to 6.3.2
   -- upgraded mccabe to version 0.7.0
diff -r 62bd225b489f -r d8946c2a22b5 eric7/APIs/Python3/eric7.api
--- a/eric7/APIs/Python3/eric7.api	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/APIs/Python3/eric7.api	Wed Mar 23 20:21:42 2022 +0100
@@ -3048,6 +3048,7 @@
 eric7.PipInterface.Pip.Pip.cachePurge?4(venvName)
 eric7.PipInterface.Pip.Pip.cacheRemove?4(venvName)
 eric7.PipInterface.Pip.Pip.checkPackageOutdated?4(packageStart, envName)
+eric7.PipInterface.Pip.Pip.getDependecyTree?4(envName, localPackages=True, usersite=False, reverse=False)
 eric7.PipInterface.Pip.Pip.getFrozenPackages?4(envName, localPackages=True, usersite=False, requirement=None)
 eric7.PipInterface.Pip.Pip.getIndexUrl?4()
 eric7.PipInterface.Pip.Pip.getIndexUrlPypi?4()
@@ -3104,6 +3105,9 @@
 eric7.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog.on_packagesEdit_textChanged?4(txt)
 eric7.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog?1(pip, title, install=True, parent=None)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.AvailableVersionColumn?7
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.DepInstalledVersionColumn?7
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.DepPackageColumn?7
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.DepRequiredVersionColumn?7
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.InstalledVersionColumn?7
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.PackageColumn?7
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.SearchVersionRole?7
@@ -3117,29 +3121,38 @@
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.executeUninstallPackages?4(packages)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.executeUpgradePackages?4(packages)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.getPip?4()
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemActivated?4(item, column)
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemPressed?4(item, column)
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemSelectionChanged?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_environmentsComboBox_currentIndexChanged?4(index)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installUserSiteButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installedFilesCheckBox_clicked?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_localCheckBox_clicked?4()
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_localDepCheckBox_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_notRequiredCheckBox_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_packagesList_itemActivated?4(item, column)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_packagesList_itemPressed?4(item, column)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_packagesList_itemSelectionChanged?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_refreshButton_clicked?4()
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_refreshDependenciesButton_clicked?4()
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_requiresButton_toggled?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchEditName_returnPressed?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchEditName_textChanged?4(txt)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchResultList_itemActivated?4(item, column)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchResultList_itemSelectionChanged?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchToggleButton_toggled?4(checked)
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showDepPackageDetailsButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showDetailsButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showPackageDetailsButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_uninstallButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_upgradeAllButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_upgradeButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_userCheckBox_clicked?4()
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_userDepCheckBox_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_verboseCheckBox_clicked?4(checked)
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_viewToggleButton_toggled?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_vulnerabilityCheckBox_clicked?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget?1(pip, parent=None)
 eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.ClassPrefix?7
diff -r 62bd225b489f -r d8946c2a22b5 eric7/Documentation/Help/source.qch
Binary file eric7/Documentation/Help/source.qch has changed
diff -r 62bd225b489f -r d8946c2a22b5 eric7/Documentation/Help/source.qhp
--- a/eric7/Documentation/Help/source.qhp	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/Documentation/Help/source.qhp	Wed Mar 23 20:21:42 2022 +0100
@@ -11327,6 +11327,7 @@
       <keyword name="Pip.cachePurge" id="Pip.cachePurge" ref="eric7.PipInterface.Pip.html#Pip.cachePurge" />
       <keyword name="Pip.cacheRemove" id="Pip.cacheRemove" ref="eric7.PipInterface.Pip.html#Pip.cacheRemove" />
       <keyword name="Pip.checkPackageOutdated" id="Pip.checkPackageOutdated" ref="eric7.PipInterface.Pip.html#Pip.checkPackageOutdated" />
+      <keyword name="Pip.getDependecyTree" id="Pip.getDependecyTree" ref="eric7.PipInterface.Pip.html#Pip.getDependecyTree" />
       <keyword name="Pip.getFrozenPackages" id="Pip.getFrozenPackages" ref="eric7.PipInterface.Pip.html#Pip.getFrozenPackages" />
       <keyword name="Pip.getIndexUrl" id="Pip.getIndexUrl" ref="eric7.PipInterface.Pip.html#Pip.getIndexUrl" />
       <keyword name="Pip.getIndexUrlPypi" id="Pip.getIndexUrlPypi" ref="eric7.PipInterface.Pip.html#Pip.getIndexUrlPypi" />
@@ -11408,6 +11409,7 @@
       <keyword name="PipPackagesWidget (Constructor)" id="PipPackagesWidget (Constructor)" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__init__" />
       <keyword name="PipPackagesWidget (Module)" id="PipPackagesWidget (Module)" ref="eric7.PipInterface.PipPackagesWidget.html" />
       <keyword name="PipPackagesWidget.__aboutToShowPipMenu" id="PipPackagesWidget.__aboutToShowPipMenu" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__aboutToShowPipMenu" />
+      <keyword name="PipPackagesWidget.__addDependency" id="PipPackagesWidget.__addDependency" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__addDependency" />
       <keyword name="PipPackagesWidget.__allUpdateableItems" id="PipPackagesWidget.__allUpdateableItems" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__allUpdateableItems" />
       <keyword name="PipPackagesWidget.__availablePipVersion" id="PipPackagesWidget.__availablePipVersion" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__availablePipVersion" />
       <keyword name="PipPackagesWidget.__clearVulnerabilityInfo" id="PipPackagesWidget.__clearVulnerabilityInfo" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__clearVulnerabilityInfo" />
@@ -11427,6 +11429,7 @@
       <keyword name="PipPackagesWidget.__populateEnvironments" id="PipPackagesWidget.__populateEnvironments" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__populateEnvironments" />
       <keyword name="PipPackagesWidget.__projectClosed" id="PipPackagesWidget.__projectClosed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__projectClosed" />
       <keyword name="PipPackagesWidget.__purgeCache" id="PipPackagesWidget.__purgeCache" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__purgeCache" />
+      <keyword name="PipPackagesWidget.__refreshDependencyTree" id="PipPackagesWidget.__refreshDependencyTree" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__refreshDependencyTree" />
       <keyword name="PipPackagesWidget.__refreshPackagesList" id="PipPackagesWidget.__refreshPackagesList" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__refreshPackagesList" />
       <keyword name="PipPackagesWidget.__reinstallPackages" id="PipPackagesWidget.__reinstallPackages" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__reinstallPackages" />
       <keyword name="PipPackagesWidget.__removeCachedFiles" id="PipPackagesWidget.__removeCachedFiles" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__removeCachedFiles" />
@@ -11442,6 +11445,7 @@
       <keyword name="PipPackagesWidget.__showVulnerabilityInformation" id="PipPackagesWidget.__showVulnerabilityInformation" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showVulnerabilityInformation" />
       <keyword name="PipPackagesWidget.__uninstallRequirements" id="PipPackagesWidget.__uninstallRequirements" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__uninstallRequirements" />
       <keyword name="PipPackagesWidget.__updateActionButtons" id="PipPackagesWidget.__updateActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateActionButtons" />
+      <keyword name="PipPackagesWidget.__updateDepActionButtons" id="PipPackagesWidget.__updateDepActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateDepActionButtons" />
       <keyword name="PipPackagesWidget.__updateSearchActionButtons" id="PipPackagesWidget.__updateSearchActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateSearchActionButtons" />
       <keyword name="PipPackagesWidget.__updateSearchButton" id="PipPackagesWidget.__updateSearchButton" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateSearchButton" />
       <keyword name="PipPackagesWidget.__updateVulnerabilityData" id="PipPackagesWidget.__updateVulnerabilityData" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateVulnerabilityData" />
@@ -11450,29 +11454,38 @@
       <keyword name="PipPackagesWidget.executeUninstallPackages" id="PipPackagesWidget.executeUninstallPackages" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.executeUninstallPackages" />
       <keyword name="PipPackagesWidget.executeUpgradePackages" id="PipPackagesWidget.executeUpgradePackages" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.executeUpgradePackages" />
       <keyword name="PipPackagesWidget.getPip" id="PipPackagesWidget.getPip" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.getPip" />
+      <keyword name="PipPackagesWidget.on_dependenciesList_itemActivated" id="PipPackagesWidget.on_dependenciesList_itemActivated" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemActivated" />
+      <keyword name="PipPackagesWidget.on_dependenciesList_itemPressed" id="PipPackagesWidget.on_dependenciesList_itemPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemPressed" />
+      <keyword name="PipPackagesWidget.on_dependenciesList_itemSelectionChanged" id="PipPackagesWidget.on_dependenciesList_itemSelectionChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemSelectionChanged" />
       <keyword name="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" id="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" />
       <keyword name="PipPackagesWidget.on_installButton_clicked" id="PipPackagesWidget.on_installButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installButton_clicked" />
       <keyword name="PipPackagesWidget.on_installUserSiteButton_clicked" id="PipPackagesWidget.on_installUserSiteButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installUserSiteButton_clicked" />
       <keyword name="PipPackagesWidget.on_installedFilesCheckBox_clicked" id="PipPackagesWidget.on_installedFilesCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installedFilesCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_localCheckBox_clicked" id="PipPackagesWidget.on_localCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_localCheckBox_clicked" />
+      <keyword name="PipPackagesWidget.on_localDepCheckBox_clicked" id="PipPackagesWidget.on_localDepCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_localDepCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_notRequiredCheckBox_clicked" id="PipPackagesWidget.on_notRequiredCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_notRequiredCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_packagesList_itemActivated" id="PipPackagesWidget.on_packagesList_itemActivated" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_packagesList_itemActivated" />
       <keyword name="PipPackagesWidget.on_packagesList_itemPressed" id="PipPackagesWidget.on_packagesList_itemPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_packagesList_itemPressed" />
       <keyword name="PipPackagesWidget.on_packagesList_itemSelectionChanged" id="PipPackagesWidget.on_packagesList_itemSelectionChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_packagesList_itemSelectionChanged" />
       <keyword name="PipPackagesWidget.on_refreshButton_clicked" id="PipPackagesWidget.on_refreshButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_refreshButton_clicked" />
+      <keyword name="PipPackagesWidget.on_refreshDependenciesButton_clicked" id="PipPackagesWidget.on_refreshDependenciesButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_refreshDependenciesButton_clicked" />
+      <keyword name="PipPackagesWidget.on_requiresButton_toggled" id="PipPackagesWidget.on_requiresButton_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_requiresButton_toggled" />
       <keyword name="PipPackagesWidget.on_searchButton_clicked" id="PipPackagesWidget.on_searchButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchButton_clicked" />
       <keyword name="PipPackagesWidget.on_searchEditName_returnPressed" id="PipPackagesWidget.on_searchEditName_returnPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchEditName_returnPressed" />
       <keyword name="PipPackagesWidget.on_searchEditName_textChanged" id="PipPackagesWidget.on_searchEditName_textChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchEditName_textChanged" />
       <keyword name="PipPackagesWidget.on_searchResultList_itemActivated" id="PipPackagesWidget.on_searchResultList_itemActivated" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchResultList_itemActivated" />
       <keyword name="PipPackagesWidget.on_searchResultList_itemSelectionChanged" id="PipPackagesWidget.on_searchResultList_itemSelectionChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchResultList_itemSelectionChanged" />
       <keyword name="PipPackagesWidget.on_searchToggleButton_toggled" id="PipPackagesWidget.on_searchToggleButton_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchToggleButton_toggled" />
+      <keyword name="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" id="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showDepPackageDetailsButton_clicked" />
       <keyword name="PipPackagesWidget.on_showDetailsButton_clicked" id="PipPackagesWidget.on_showDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showDetailsButton_clicked" />
       <keyword name="PipPackagesWidget.on_showPackageDetailsButton_clicked" id="PipPackagesWidget.on_showPackageDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showPackageDetailsButton_clicked" />
       <keyword name="PipPackagesWidget.on_uninstallButton_clicked" id="PipPackagesWidget.on_uninstallButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_uninstallButton_clicked" />
       <keyword name="PipPackagesWidget.on_upgradeAllButton_clicked" id="PipPackagesWidget.on_upgradeAllButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_upgradeAllButton_clicked" />
       <keyword name="PipPackagesWidget.on_upgradeButton_clicked" id="PipPackagesWidget.on_upgradeButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_upgradeButton_clicked" />
       <keyword name="PipPackagesWidget.on_userCheckBox_clicked" id="PipPackagesWidget.on_userCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_userCheckBox_clicked" />
+      <keyword name="PipPackagesWidget.on_userDepCheckBox_clicked" id="PipPackagesWidget.on_userDepCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_userDepCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_verboseCheckBox_clicked" id="PipPackagesWidget.on_verboseCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_verboseCheckBox_clicked" />
+      <keyword name="PipPackagesWidget.on_viewToggleButton_toggled" id="PipPackagesWidget.on_viewToggleButton_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_viewToggleButton_toggled" />
       <keyword name="PipPackagesWidget.on_vulnerabilityCheckBox_clicked" id="PipPackagesWidget.on_vulnerabilityCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_vulnerabilityCheckBox_clicked" />
       <keyword name="PipPage" id="PipPage" ref="eric7.Preferences.ConfigurationPages.PipPage.html#PipPage" />
       <keyword name="PipPage (Constructor)" id="PipPage (Constructor)" ref="eric7.Preferences.ConfigurationPages.PipPage.html#PipPage.__init__" />
diff -r 62bd225b489f -r d8946c2a22b5 eric7/Documentation/Source/eric7.PipInterface.Pip.html
--- a/eric7/Documentation/Source/eric7.PipInterface.Pip.html	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/Documentation/Source/eric7.PipInterface.Pip.html	Wed Mar 23 20:21:42 2022 +0100
@@ -83,6 +83,10 @@
 <td>Public method to check, if a group of packages is outdated.</td>
 </tr>
 <tr>
+<td><a href="#Pip.getDependecyTree">getDependecyTree</a></td>
+<td>Public method to get the dependency tree of installed packages.</td>
+</tr>
+<tr>
 <td><a href="#Pip.getFrozenPackages">getFrozenPackages</a></td>
 <td>Public method to get the list of package specifiers to freeze them.</td>
 </tr>
@@ -327,6 +331,48 @@
 tuple of (bool, (str, str, str))
 </dd>
 </dl>
+<a NAME="Pip.getDependecyTree" ID="Pip.getDependecyTree"></a>
+<h4>Pip.getDependecyTree</h4>
+<b>getDependecyTree</b>(<i>envName, localPackages=True, usersite=False, reverse=False</i>)
+
+<p>
+        Public method to get the dependency tree of installed packages.
+</p>
+<dl>
+
+<dt><i>envName</i> (str)</dt>
+<dd>
+name of the environment to get the packages for
+</dd>
+<dt><i>localPackages</i> (bool)</dt>
+<dd>
+flag indicating to get the tree for local
+            packages only
+</dd>
+<dt><i>usersite</i> (bool)</dt>
+<dd>
+flag indicating to get the tree for packages
+            installed in user-site directory only
+</dd>
+<dt><i>reverse</i> (bool)</dt>
+<dd>
+flag indicating to get the dependency tree in
+            reverse order (i.e. list packages needed by other)
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+list of nested dictionaries resembling the requested
+            dependency tree
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of dict
+</dd>
+</dl>
 <a NAME="Pip.getFrozenPackages" ID="Pip.getFrozenPackages"></a>
 <h4>Pip.getFrozenPackages</h4>
 <b>getFrozenPackages</b>(<i>envName, localPackages=True, usersite=False, requirement=None</i>)
diff -r 62bd225b489f -r d8946c2a22b5 eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html
--- a/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html	Wed Mar 23 20:21:42 2022 +0100
@@ -47,7 +47,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>AvailableVersionColumn</td></tr><tr><td>InstalledVersionColumn</td></tr><tr><td>PackageColumn</td></tr><tr><td>SearchVersionRole</td></tr><tr><td>ShowProcessClassifiersMode</td></tr><tr><td>ShowProcessEntryPointsMode</td></tr><tr><td>ShowProcessFilesListMode</td></tr><tr><td>ShowProcessGeneralMode</td></tr><tr><td>VulnerabilityColumn</td></tr><tr><td>VulnerabilityRole</td></tr>
+<tr><td>AvailableVersionColumn</td></tr><tr><td>DepInstalledVersionColumn</td></tr><tr><td>DepPackageColumn</td></tr><tr><td>DepRequiredVersionColumn</td></tr><tr><td>InstalledVersionColumn</td></tr><tr><td>PackageColumn</td></tr><tr><td>SearchVersionRole</td></tr><tr><td>ShowProcessClassifiersMode</td></tr><tr><td>ShowProcessEntryPointsMode</td></tr><tr><td>ShowProcessFilesListMode</td></tr><tr><td>ShowProcessGeneralMode</td></tr><tr><td>VulnerabilityColumn</td></tr><tr><td>VulnerabilityRole</td></tr>
 </table>
 <h3>Class Methods</h3>
 
@@ -67,6 +67,10 @@
 <td>Private slot to set the action enabled status.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.__addDependency">__addDependency</a></td>
+<td>Private method to add a dependency branch to a given parent.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.__allUpdateableItems">__allUpdateableItems</a></td>
 <td>Private method to get a list of all items that can be updated.</td>
 </tr>
@@ -143,8 +147,12 @@
 <td>Private slot to empty the pip cache.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.__refreshDependencyTree">__refreshDependencyTree</a></td>
+<td>Private method to refresh the dependency tree.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.__refreshPackagesList">__refreshPackagesList</a></td>
-<td>Private method to referesh the packages list.</td>
+<td>Private method to refresh the packages list.</td>
 </tr>
 <tr>
 <td><a href="#PipPackagesWidget.__reinstallPackages">__reinstallPackages</a></td>
@@ -203,6 +211,10 @@
 <td>Private method to set the state of the action buttons.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.__updateDepActionButtons">__updateDepActionButtons</a></td>
+<td>Private method to set the state of the dependency page action buttons.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.__updateSearchActionButtons">__updateSearchActionButtons</a></td>
 <td>Private method to update the action button states of the search widget.</td>
 </tr>
@@ -235,6 +247,18 @@
 <td>Public method to get a reference to the pip interface object.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_dependenciesList_itemActivated">on_dependenciesList_itemActivated</a></td>
+<td>Private slot reacting on a package item of the dependency tree being activated.</td>
+</tr>
+<tr>
+<td><a href="#PipPackagesWidget.on_dependenciesList_itemPressed">on_dependenciesList_itemPressed</a></td>
+<td>Private slot reacting on a package item of the dependency tree being pressed.</td>
+</tr>
+<tr>
+<td><a href="#PipPackagesWidget.on_dependenciesList_itemSelectionChanged">on_dependenciesList_itemSelectionChanged</a></td>
+<td>Private slot reacting on a change of selected items of the dependency tree.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_environmentsComboBox_currentIndexChanged">on_environmentsComboBox_currentIndexChanged</a></td>
 <td>Private slot handling the selection of a Python environment.</td>
 </tr>
@@ -255,6 +279,10 @@
 <td>Private slot handling the switching of the local mode.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_localDepCheckBox_clicked">on_localDepCheckBox_clicked</a></td>
+<td>Private slot handling the switching of the local mode.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_notRequiredCheckBox_clicked">on_notRequiredCheckBox_clicked</a></td>
 <td>Private slot handling the switching of the 'not required' mode.</td>
 </tr>
@@ -275,6 +303,14 @@
 <td>Private slot to refresh the display.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_refreshDependenciesButton_clicked">on_refreshDependenciesButton_clicked</a></td>
+<td>Private slot to refresh the dependency tree.</td>
+</tr>
+<tr>
+<td><a href="#PipPackagesWidget.on_requiresButton_toggled">on_requiresButton_toggled</a></td>
+<td>Private slot handling the selection of the view type.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_searchButton_clicked">on_searchButton_clicked</a></td>
 <td>Private slot handling a press of the search button.</td>
 </tr>
@@ -299,6 +335,10 @@
 <td>Private slot to togle the search widget.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_showDepPackageDetailsButton_clicked">on_showDepPackageDetailsButton_clicked</a></td>
+<td>Private slot to show information for the selected package of the dependency tree.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_showDetailsButton_clicked">on_showDetailsButton_clicked</a></td>
 <td>Private slot to handle pressing the Show Details button.</td>
 </tr>
@@ -323,10 +363,18 @@
 <td>Private slot handling the switching of the 'user-site' mode.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_userDepCheckBox_clicked">on_userDepCheckBox_clicked</a></td>
+<td>Private slot handling the switching of the 'user-site' mode.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_verboseCheckBox_clicked">on_verboseCheckBox_clicked</a></td>
 <td>Private slot to handle a change of the verbose package information checkbox.</td>
 </tr>
 <tr>
+<td><a href="#PipPackagesWidget.on_viewToggleButton_toggled">on_viewToggleButton_toggled</a></td>
+<td>Private slot handling the view selection.</td>
+</tr>
+<tr>
 <td><a href="#PipPackagesWidget.on_vulnerabilityCheckBox_clicked">on_vulnerabilityCheckBox_clicked</a></td>
 <td>Private slot handling a change of the automatic vulnerability checks.</td>
 </tr>
@@ -362,6 +410,24 @@
 <p>
         Private slot to set the action enabled status.
 </p>
+<a NAME="PipPackagesWidget.__addDependency" ID="PipPackagesWidget.__addDependency"></a>
+<h4>PipPackagesWidget.__addDependency</h4>
+<b>__addDependency</b>(<i>dependency, parent</i>)
+
+<p>
+        Private method to add a dependency branch to a given parent.
+</p>
+<dl>
+
+<dt><i>dependency</i> (dict)</dt>
+<dd>
+dependency to be added
+</dd>
+<dt><i>parent</i> (QTreeWidget or QTreeWidgetItem)</dt>
+<dd>
+reference to the parent item
+</dd>
+</dl>
 <a NAME="PipPackagesWidget.__allUpdateableItems" ID="PipPackagesWidget.__allUpdateableItems"></a>
 <h4>PipPackagesWidget.__allUpdateableItems</h4>
 <b>__allUpdateableItems</b>(<i></i>)
@@ -549,12 +615,19 @@
 <p>
         Private slot to empty the pip cache.
 </p>
+<a NAME="PipPackagesWidget.__refreshDependencyTree" ID="PipPackagesWidget.__refreshDependencyTree"></a>
+<h4>PipPackagesWidget.__refreshDependencyTree</h4>
+<b>__refreshDependencyTree</b>(<i></i>)
+
+<p>
+        Private method to refresh the dependency tree.
+</p>
 <a NAME="PipPackagesWidget.__refreshPackagesList" ID="PipPackagesWidget.__refreshPackagesList"></a>
 <h4>PipPackagesWidget.__refreshPackagesList</h4>
 <b>__refreshPackagesList</b>(<i></i>)
 
 <p>
-        Private method to referesh the packages list.
+        Private method to refresh the packages list.
 </p>
 <a NAME="PipPackagesWidget.__reinstallPackages" ID="PipPackagesWidget.__reinstallPackages"></a>
 <h4>PipPackagesWidget.__reinstallPackages</h4>
@@ -662,7 +735,7 @@
 </dl>
 <a NAME="PipPackagesWidget.__showPackageInformation" ID="PipPackagesWidget.__showPackageInformation"></a>
 <h4>PipPackagesWidget.__showPackageInformation</h4>
-<b>__showPackageInformation</b>(<i>packageName</i>)
+<b>__showPackageInformation</b>(<i>packageName, infoWidget</i>)
 
 <p>
         Private method to show information for a package.
@@ -673,6 +746,10 @@
 <dd>
 name of the package
 </dd>
+<dt><i>infoWidget</i> (QTreeWidget)</dt>
+<dd>
+reference to the widget to contain the information
+</dd>
 </dl>
 <a NAME="PipPackagesWidget.__showSearchedDetails" ID="PipPackagesWidget.__showSearchedDetails"></a>
 <h4>PipPackagesWidget.__showSearchedDetails</h4>
@@ -724,6 +801,13 @@
 <p>
         Private method to set the state of the action buttons.
 </p>
+<a NAME="PipPackagesWidget.__updateDepActionButtons" ID="PipPackagesWidget.__updateDepActionButtons"></a>
+<h4>PipPackagesWidget.__updateDepActionButtons</h4>
+<b>__updateDepActionButtons</b>(<i></i>)
+
+<p>
+        Private method to set the state of the dependency page action buttons.
+</p>
 <a NAME="PipPackagesWidget.__updateSearchActionButtons" ID="PipPackagesWidget.__updateSearchActionButtons"></a>
 <h4>PipPackagesWidget.__updateSearchActionButtons</h4>
 <b>__updateSearchActionButtons</b>(<i></i>)
@@ -826,6 +910,52 @@
 Pip
 </dd>
 </dl>
+<a NAME="PipPackagesWidget.on_dependenciesList_itemActivated" ID="PipPackagesWidget.on_dependenciesList_itemActivated"></a>
+<h4>PipPackagesWidget.on_dependenciesList_itemActivated</h4>
+<b>on_dependenciesList_itemActivated</b>(<i>item, column</i>)
+
+<p>
+        Private slot reacting on a package item of the dependency tree being
+        activated.
+</p>
+<dl>
+
+<dt><i>item</i> (QTreeWidgetItem)</dt>
+<dd>
+reference to the activated item
+</dd>
+<dt><i>column</i> (int)</dt>
+<dd>
+activated column
+</dd>
+</dl>
+<a NAME="PipPackagesWidget.on_dependenciesList_itemPressed" ID="PipPackagesWidget.on_dependenciesList_itemPressed"></a>
+<h4>PipPackagesWidget.on_dependenciesList_itemPressed</h4>
+<b>on_dependenciesList_itemPressed</b>(<i>item, column</i>)
+
+<p>
+        Private slot reacting on a package item of the dependency tree being
+        pressed.
+</p>
+<dl>
+
+<dt><i>item</i> (QTreeWidgetItem)</dt>
+<dd>
+reference to the pressed item
+</dd>
+<dt><i>column</i> (int)</dt>
+<dd>
+pressed column
+</dd>
+</dl>
+<a NAME="PipPackagesWidget.on_dependenciesList_itemSelectionChanged" ID="PipPackagesWidget.on_dependenciesList_itemSelectionChanged"></a>
+<h4>PipPackagesWidget.on_dependenciesList_itemSelectionChanged</h4>
+<b>on_dependenciesList_itemSelectionChanged</b>(<i></i>)
+
+<p>
+        Private slot reacting on a change of selected items of the dependency
+        tree.
+</p>
 <a NAME="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" ID="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged"></a>
 <h4>PipPackagesWidget.on_environmentsComboBox_currentIndexChanged</h4>
 <b>on_environmentsComboBox_currentIndexChanged</b>(<i>index</i>)
@@ -876,6 +1006,13 @@
 <p>
         Private slot handling the switching of the local mode.
 </p>
+<a NAME="PipPackagesWidget.on_localDepCheckBox_clicked" ID="PipPackagesWidget.on_localDepCheckBox_clicked"></a>
+<h4>PipPackagesWidget.on_localDepCheckBox_clicked</h4>
+<b>on_localDepCheckBox_clicked</b>(<i></i>)
+
+<p>
+        Private slot handling the switching of the local mode.
+</p>
 <a NAME="PipPackagesWidget.on_notRequiredCheckBox_clicked" ID="PipPackagesWidget.on_notRequiredCheckBox_clicked"></a>
 <h4>PipPackagesWidget.on_notRequiredCheckBox_clicked</h4>
 <b>on_notRequiredCheckBox_clicked</b>(<i></i>)
@@ -933,6 +1070,27 @@
 <p>
         Private slot to refresh the display.
 </p>
+<a NAME="PipPackagesWidget.on_refreshDependenciesButton_clicked" ID="PipPackagesWidget.on_refreshDependenciesButton_clicked"></a>
+<h4>PipPackagesWidget.on_refreshDependenciesButton_clicked</h4>
+<b>on_refreshDependenciesButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to refresh the dependency tree.
+</p>
+<a NAME="PipPackagesWidget.on_requiresButton_toggled" ID="PipPackagesWidget.on_requiresButton_toggled"></a>
+<h4>PipPackagesWidget.on_requiresButton_toggled</h4>
+<b>on_requiresButton_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot handling the selection of the view type.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the radio button (unused)
+</dd>
+</dl>
 <a NAME="PipPackagesWidget.on_searchButton_clicked" ID="PipPackagesWidget.on_searchButton_clicked"></a>
 <h4>PipPackagesWidget.on_searchButton_clicked</h4>
 <b>on_searchButton_clicked</b>(<i></i>)
@@ -1000,6 +1158,14 @@
 state of the search widget button
 </dd>
 </dl>
+<a NAME="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" ID="PipPackagesWidget.on_showDepPackageDetailsButton_clicked"></a>
+<h4>PipPackagesWidget.on_showDepPackageDetailsButton_clicked</h4>
+<b>on_showDepPackageDetailsButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to show information for the selected package of the
+        dependency tree.
+</p>
 <a NAME="PipPackagesWidget.on_showDetailsButton_clicked" ID="PipPackagesWidget.on_showDetailsButton_clicked"></a>
 <h4>PipPackagesWidget.on_showDetailsButton_clicked</h4>
 <b>on_showDetailsButton_clicked</b>(<i></i>)
@@ -1042,6 +1208,13 @@
 <p>
         Private slot handling the switching of the 'user-site' mode.
 </p>
+<a NAME="PipPackagesWidget.on_userDepCheckBox_clicked" ID="PipPackagesWidget.on_userDepCheckBox_clicked"></a>
+<h4>PipPackagesWidget.on_userDepCheckBox_clicked</h4>
+<b>on_userDepCheckBox_clicked</b>(<i></i>)
+
+<p>
+        Private slot handling the switching of the 'user-site' mode.
+</p>
 <a NAME="PipPackagesWidget.on_verboseCheckBox_clicked" ID="PipPackagesWidget.on_verboseCheckBox_clicked"></a>
 <h4>PipPackagesWidget.on_verboseCheckBox_clicked</h4>
 <b>on_verboseCheckBox_clicked</b>(<i>checked</i>)
@@ -1057,6 +1230,20 @@
 state of the checkbox
 </dd>
 </dl>
+<a NAME="PipPackagesWidget.on_viewToggleButton_toggled" ID="PipPackagesWidget.on_viewToggleButton_toggled"></a>
+<h4>PipPackagesWidget.on_viewToggleButton_toggled</h4>
+<b>on_viewToggleButton_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot handling the view selection.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the toggle button
+</dd>
+</dl>
 <a NAME="PipPackagesWidget.on_vulnerabilityCheckBox_clicked" ID="PipPackagesWidget.on_vulnerabilityCheckBox_clicked"></a>
 <h4>PipPackagesWidget.on_vulnerabilityCheckBox_clicked</h4>
 <b>on_vulnerabilityCheckBox_clicked</b>(<i>checked</i>)
diff -r 62bd225b489f -r d8946c2a22b5 eric7/PipInterface/Pip.py
--- a/eric7/PipInterface/Pip.py	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/PipInterface/Pip.py	Wed Mar 23 20:21:42 2022 +0100
@@ -918,3 +918,55 @@
                                            showArgs=False)
                     if res:
                         dia.exec()
+    
+    #######################################################################
+    ## Dependency tree handling methods below
+    #######################################################################
+    
+    def getDependecyTree(self, envName, localPackages=True, usersite=False,
+                         reverse=False):
+        """
+        Public method to get the dependency tree of installed packages.
+        
+        @param envName name of the environment to get the packages for
+        @type str
+        @param localPackages flag indicating to get the tree for local
+            packages only
+        @type bool
+        @param usersite flag indicating to get the tree for packages
+            installed in user-site directory only
+        @type bool
+        @param reverse flag indicating to get the dependency tree in
+            reverse order (i.e. list packages needed by other)
+        @type bool
+        @return list of nested dictionaries resembling the requested
+            dependency tree
+        @rtype list of dict
+        """
+        dependencies = []
+        
+        if envName:
+            interpreter = self.getVirtualenvInterpreter(envName)
+            if interpreter:
+                args = [
+                    "-m", "pipdeptree",
+                    "--json-tree",
+                    "--python", interpreter,
+                ]
+                if localPackages:
+                    args.append("--local-only")
+                if usersite:
+                    args.append("--user-only")
+                if reverse:
+                    args.append("--reverse")
+                
+                proc = QProcess()
+                proc.start(sys.executable, args)
+                if proc.waitForStarted(15000) and proc.waitForFinished(30000):
+                    output = str(proc.readAllStandardOutput(),
+                                 Preferences.getSystem("IOEncoding"),
+                                 'replace').strip()
+                    with contextlib.suppress(json.JSONDecodeError):
+                        dependencies = json.loads(output)
+           
+        return dependencies
diff -r 62bd225b489f -r d8946c2a22b5 eric7/PipInterface/PipPackagesWidget.py
--- a/eric7/PipInterface/PipPackagesWidget.py	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/PipInterface/PipPackagesWidget.py	Wed Mar 23 20:21:42 2022 +0100
@@ -12,6 +12,8 @@
 import html.parser
 import contextlib
 
+from packaging.specifiers import SpecifierSet
+
 from PyQt6.QtCore import pyqtSlot, Qt, QUrl, QUrlQuery
 from PyQt6.QtGui import QIcon
 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
@@ -157,6 +159,10 @@
     AvailableVersionColumn = 2
     VulnerabilityColumn = 3
     
+    DepPackageColumn = 0
+    DepInstalledVersionColumn = 1
+    DepRequiredVersionColumn = 2
+    
     def __init__(self, pip, parent=None):
         """
         Constructor
@@ -171,6 +177,8 @@
         
         self.layout().setContentsMargins(0, 3, 0, 0)
         
+        self.viewToggleButton.setIcon(UI.PixmapCache.getIcon("viewListTree"))
+        
         self.pipMenuButton.setObjectName(
             "pip_supermenu_button")
         self.pipMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu"))
@@ -183,21 +191,38 @@
         self.pipMenuButton.setAutoRaise(True)
         self.pipMenuButton.setShowMenuInside(True)
         
-        self.refreshButton.setIcon(UI.PixmapCache.getIcon("reload"))
-        self.upgradeButton.setIcon(UI.PixmapCache.getIcon("1uparrow"))
-        self.upgradeAllButton.setIcon(UI.PixmapCache.getIcon("2uparrow"))
-        self.uninstallButton.setIcon(UI.PixmapCache.getIcon("minus"))
-        self.showPackageDetailsButton.setIcon(UI.PixmapCache.getIcon("info"))
-        self.searchToggleButton.setIcon(UI.PixmapCache.getIcon("find"))
-        self.searchButton.setIcon(UI.PixmapCache.getIcon("findNext"))
-        self.installButton.setIcon(UI.PixmapCache.getIcon("plus"))
-        self.installUserSiteButton.setIcon(UI.PixmapCache.getIcon("addUser"))
-        self.showDetailsButton.setIcon(UI.PixmapCache.getIcon("info"))
+        self.refreshButton.setIcon(
+            UI.PixmapCache.getIcon("reload"))
+        self.upgradeButton.setIcon(
+            UI.PixmapCache.getIcon("1uparrow"))
+        self.upgradeAllButton.setIcon(
+            UI.PixmapCache.getIcon("2uparrow"))
+        self.uninstallButton.setIcon(
+            UI.PixmapCache.getIcon("minus"))
+        self.showPackageDetailsButton.setIcon(
+            UI.PixmapCache.getIcon("info"))
+        self.searchToggleButton.setIcon(
+            UI.PixmapCache.getIcon("find"))
+        self.searchButton.setIcon(
+            UI.PixmapCache.getIcon("findNext"))
+        self.installButton.setIcon(
+            UI.PixmapCache.getIcon("plus"))
+        self.installUserSiteButton.setIcon(
+            UI.PixmapCache.getIcon("addUser"))
+        self.showDetailsButton.setIcon(
+            UI.PixmapCache.getIcon("info"))
+        
+        self.refreshDependenciesButton.setIcon(
+            UI.PixmapCache.getIcon("reload"))
+        self.showDepPackageDetailsButton.setIcon(
+            UI.PixmapCache.getIcon("info"))
         
         self.__pip = pip
         
         self.packagesList.header().setSortIndicator(
             PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder)
+        self.dependenciesList.header().setSortIndicator(
+            PipPackagesWidget.DepPackageColumn, Qt.SortOrder.AscendingOrder)
         
         self.__infoLabels = {
             "name": self.tr("Name:"),
@@ -216,6 +241,7 @@
             "files": self.tr("Files:"),
         }
         self.infoWidget.setHeaderLabels(["Key", "Value"])
+        self.dependencyInfoWidget.setHeaderLabels(["Key", "Value"])
         
         venvManager = ericApp().getObject("VirtualEnvManager")
         venvManager.virtualEnvironmentAdded.connect(
@@ -232,6 +258,7 @@
         self.__initPipMenu()
         self.__populateEnvironments()
         self.__updateActionButtons()
+        self.__updateDepActionButtons()
         
         self.statusLabel.hide()
         self.searchWidget.hide()
@@ -242,6 +269,8 @@
         self.__replies = []
         
         self.__packageDetailsDialog = None
+        
+        self.viewsStackWidget.setCurrentWidget(self.packagesPage)
     
     @pyqtSlot(bool)
     def __projectClosed(self, shutdown):
@@ -372,7 +401,7 @@
     
     def __refreshPackagesList(self):
         """
-        Private method to referesh the packages list.
+        Private method to refresh the packages list.
         """
         self.packagesList.clear()
         venvName = self.environmentsComboBox.currentText()
@@ -444,7 +473,10 @@
         @param index index of the selected Python environment
         @type int
         """
-        self.__refreshPackagesList()
+        if self.viewToggleButton.isChecked():
+            self.__refreshDependencyTree()
+        else:
+            self.__refreshPackagesList()
     
     @pyqtSlot()
     def on_localCheckBox_clicked(self):
@@ -467,12 +499,14 @@
         """
         self.__refreshPackagesList()
     
-    def __showPackageInformation(self, packageName):
+    def __showPackageInformation(self, packageName, infoWidget):
         """
         Private method to show information for a package.
         
         @param packageName name of the package
         @type str
+        @param infoWidget reference to the widget to contain the information
+        @type QTreeWidget
         """
         environment = self.environmentsComboBox.currentText()
         interpreter = self.__pip.getVirtualenvInterpreter(environment)
@@ -497,7 +531,7 @@
                         if mode != self.ShowProcessGeneralMode:
                             if line[0] == " ":
                                 QTreeWidgetItem(
-                                    self.infoWidget,
+                                    infoWidget,
                                     [" ", line.strip()])
                             else:
                                 mode = self.ShowProcessGeneralMode
@@ -510,7 +544,7 @@
                             label = label.lower()
                             if label in self.__infoLabels:
                                 QTreeWidgetItem(
-                                    self.infoWidget,
+                                    infoWidget,
                                     [self.__infoLabels[label], info])
                             if label == "files":
                                 mode = self.ShowProcessFilesListMode
@@ -518,9 +552,9 @@
                                 mode = self.ShowProcessClassifiersMode
                             elif label == "entry-points":
                                 mode = self.ShowProcessEntryPointsMode
-                self.infoWidget.scrollToTop()
+                infoWidget.scrollToTop()
             
-            header = self.infoWidget.header()
+            header = infoWidget.header()
             header.setStretchLastSection(False)
             header.resizeSections(QHeaderView.ResizeMode.ResizeToContents)
             if (
@@ -562,7 +596,8 @@
                 )
             else:
                 self.__showPackageInformation(
-                    item.text(PipPackagesWidget.PackageColumn)
+                    item.text(PipPackagesWidget.PackageColumn),
+                    self.infoWidget
                 )
         
         self.__updateActionButtons()
@@ -1488,3 +1523,204 @@
         
         header = self.infoWidget.header()
         header.setStretchLastSection(True)
+    
+    #######################################################################
+    ## Dependency tree related methods below
+    #######################################################################
+    
+    @pyqtSlot(bool)
+    def on_viewToggleButton_toggled(self, checked):
+        """
+        Private slot handling the view selection.
+        
+        @param checked state of the toggle button
+        @type bool
+        """
+        if checked:
+            self.viewsStackWidget.setCurrentWidget(
+                self.dependenciesPage)
+            self.__refreshDependencyTree()
+        else:
+            self.viewsStackWidget.setCurrentWidget(
+                self.packagesPage)
+            self.__refreshPackagesList()
+    
+    @pyqtSlot(bool)
+    def on_requiresButton_toggled(self, checked):
+        """
+        Private slot handling the selection of the view type.
+        
+        @param checked state of the radio button (unused)
+        @type bool
+        """
+        self.__refreshDependencyTree()
+    
+    @pyqtSlot()
+    def on_localDepCheckBox_clicked(self):
+        """
+        Private slot handling the switching of the local mode.
+        """
+        self.__refreshDependencyTree()
+    
+    @pyqtSlot()
+    def on_userDepCheckBox_clicked(self):
+        """
+        Private slot handling the switching of the 'user-site' mode.
+        """
+        self.__refreshDependencyTree()
+    
+    def __refreshDependencyTree(self):
+        """
+        Private method to refresh the dependency tree.
+        """
+        self.dependenciesList.clear()
+        venvName = self.environmentsComboBox.currentText()
+        if venvName:
+            interpreter = self.__pip.getVirtualenvInterpreter(venvName)
+            if interpreter:
+                with EricOverrideCursor():
+                    dependencies = self.__pip.getDependecyTree(
+                        venvName,
+                        localPackages=self.localDepCheckBox.isChecked(),
+                        usersite=self.userDepCheckBox.isChecked(),
+                        reverse = self.requiredByButton.isChecked(),
+                    )
+                    
+                    self.dependenciesList.setUpdatesEnabled(False)
+                    for dependency in dependencies:
+                        self.__addDependency(dependency, self.dependenciesList)
+                    
+                    self.dependenciesList.sortItems(
+                        PipPackagesWidget.DepPackageColumn,
+                        Qt.SortOrder.AscendingOrder)
+                    for col in range(self.dependenciesList.columnCount()):
+                        self.dependenciesList.resizeColumnToContents(col)
+                    self.dependenciesList.setUpdatesEnabled(True)
+        
+        self.__updateDepActionButtons()
+    
+    def __addDependency(self, dependency, parent):
+        """
+        Private method to add a dependency branch to a given parent.
+        
+        @param dependency dependency to be added
+        @type dict
+        @param parent reference to the parent item
+        @type QTreeWidget or QTreeWidgetItem
+        """
+        itm = QTreeWidgetItem(parent, [
+            dependency["package_name"],
+            dependency["installed_version"],
+            dependency["required_version"],
+        ])
+        itm.setExpanded(True)
+        
+        if dependency["required_version"].lower() != "any":
+            spec = (
+                "=={0}".format(dependency["required_version"])
+                if dependency["required_version"][0] in "0123456789" else
+                dependency["required_version"]
+            )
+            specifierSet = SpecifierSet(specifiers=spec)
+            if not specifierSet.contains(dependency["installed_version"]):
+                itm.setIcon(PipPackagesWidget.DepRequiredVersionColumn,
+                            UI.PixmapCache.getIcon("warning"))
+        
+        if dependency["required_version"].lower() == "any":
+            itm.setText(PipPackagesWidget.DepRequiredVersionColumn,
+                        self.tr("any"))
+        
+        # recursively add sub-dependencies
+        for dep in dependency["dependencies"]:
+            self.__addDependency(dep, itm)
+    
+    @pyqtSlot(QTreeWidgetItem, int)
+    def on_dependenciesList_itemActivated(self, item, column):
+        """
+        Private slot reacting on a package item of the dependency tree being
+        activated.
+        
+        @param item reference to the activated item
+        @type QTreeWidgetItem
+        @param column activated column
+        @type int
+        """
+        packageName = item.text(PipPackagesWidget.DepPackageColumn)
+        packageVersion = item.text(
+            PipPackagesWidget.DepInstalledVersionColumn)
+        
+        self.__showPackageDetails(packageName, packageVersion)
+    
+    @pyqtSlot()
+    def on_dependenciesList_itemSelectionChanged(self):
+        """
+        Private slot reacting on a change of selected items of the dependency
+        tree.
+        """
+        if len(self.dependenciesList.selectedItems()) == 0:
+            self.dependencyInfoWidget.clear()
+    
+    @pyqtSlot(QTreeWidgetItem, int)
+    def on_dependenciesList_itemPressed(self, item, column):
+        """
+        Private slot reacting on a package item of the dependency tree being
+        pressed.
+        
+        @param item reference to the pressed item
+        @type QTreeWidgetItem
+        @param column pressed column
+        @type int
+        """
+        self.dependencyInfoWidget.clear()
+        
+        if item is not None:
+            self.__showPackageInformation(
+                item.text(PipPackagesWidget.DepPackageColumn),
+                self.dependencyInfoWidget
+            )
+        
+        self.__updateDepActionButtons()
+    
+    @pyqtSlot()
+    def on_refreshDependenciesButton_clicked(self):
+        """
+        Private slot to refresh the dependency tree.
+        """
+        currentEnvironment = self.environmentsComboBox.currentText()
+        self.environmentsComboBox.clear()
+        self.dependenciesList.clear()
+        
+        with EricOverrideCursor():
+            self.__populateEnvironments()
+            
+            index = self.environmentsComboBox.findText(
+                currentEnvironment,
+                Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive
+            )
+            if index != -1:
+                self.environmentsComboBox.setCurrentIndex(index)
+        
+        self.__updateDepActionButtons()
+    
+    @pyqtSlot()
+    def on_showDepPackageDetailsButton_clicked(self):
+        """
+        Private slot to show information for the selected package of the
+        dependency tree.
+        """
+        item = self.dependenciesList.selectedItems()[0]
+        if item:
+            packageName = item.text(PipPackagesWidget.DepPackageColumn)
+            packageVersion = item.text(
+                PipPackagesWidget.DepInstalledVersionColumn)
+            
+            self.__showPackageDetails(packageName, packageVersion)
+    
+    def __updateDepActionButtons(self):
+        """
+        Private method to set the state of the dependency page action buttons.
+        """
+        self.showDepPackageDetailsButton.setEnabled(
+            len(self.dependenciesList.selectedItems()) == 1 and
+            self.__isPipAvailable()
+        )
diff -r 62bd225b489f -r d8946c2a22b5 eric7/PipInterface/PipPackagesWidget.ui
--- a/eric7/PipInterface/PipPackagesWidget.ui	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/PipInterface/PipPackagesWidget.ui	Wed Mar 23 20:21:42 2022 +0100
@@ -7,147 +7,64 @@
     <x>0</x>
     <y>0</y>
     <width>503</width>
-    <height>700</height>
+    <height>1180</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5">
+  <layout class="QVBoxLayout" name="verticalLayout_6">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
    <item>
-    <widget class="QWidget" name="baseWidget" native="true">
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QComboBox" name="environmentsComboBox"/>
-        </item>
-        <item>
-         <widget class="EricToolButton" name="pipMenuButton"/>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QGridLayout" name="gridLayout_2">
-        <item row="0" column="0">
-         <widget class="QCheckBox" name="localCheckBox">
-          <property name="toolTip">
-           <string>Select to show only locally-installed packages</string>
-          </property>
-          <property name="text">
-           <string>Local packages only</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QCheckBox" name="notRequiredCheckBox">
-          <property name="toolTip">
-           <string>Select to list packages that are not dependencies of installed packages</string>
-          </property>
-          <property name="text">
-           <string>Not required Packages</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QCheckBox" name="userCheckBox">
-          <property name="toolTip">
-           <string>Select to show only packages installed to the user-site</string>
-          </property>
-          <property name="text">
-           <string>User-Site only</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QCheckBox" name="vulnerabilityCheckBox">
-          <property name="toolTip">
-           <string>Perform vulnerability checks based on &quot;Safety DB&quot;.</string>
-          </property>
-          <property name="text">
-           <string>Vulnerability Check</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QLabel" name="statusLabel"/>
-      </item>
-      <item>
-       <widget class="QSplitter" name="splitter">
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <widget class="QTreeWidget" name="packagesList">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-           <horstretch>0</horstretch>
-           <verstretch>3</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::ExtendedSelection</enum>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <property name="sortingEnabled">
-          <bool>true</bool>
-         </property>
-         <attribute name="headerDefaultSectionSize">
-          <number>150</number>
-         </attribute>
-         <column>
-          <property name="text">
-           <string>Package</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Installed Version</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Available Version</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Affected Version</string>
-          </property>
-         </column>
-        </widget>
-        <widget class="QWidget" name="widget" native="true">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>1</verstretch>
-          </sizepolicy>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout_3">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QToolButton" name="viewToggleButton">
+       <property name="toolTip">
+        <string>Toggle to show or hide the dependency tree view</string>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="environmentsComboBox"/>
+     </item>
+     <item>
+      <widget class="EricToolButton" name="pipMenuButton"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QStackedWidget" name="viewsStackWidget">
+     <property name="currentIndex">
+      <number>1</number>
+     </property>
+     <widget class="QWidget" name="packagesPage">
+      <layout class="QVBoxLayout" name="verticalLayout_5">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QWidget" name="baseWidget" native="true">
+         <layout class="QVBoxLayout" name="verticalLayout_4">
           <property name="leftMargin">
            <number>0</number>
           </property>
@@ -161,40 +78,351 @@
            <number>0</number>
           </property>
           <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_7">
-            <item>
-             <widget class="QCheckBox" name="verboseCheckBox">
+           <layout class="QGridLayout" name="gridLayout_2">
+            <item row="0" column="0">
+             <widget class="QCheckBox" name="localCheckBox">
               <property name="toolTip">
-               <string>Select to show verbose package information</string>
+               <string>Select to show only locally-installed packages</string>
               </property>
               <property name="text">
-               <string>Verbose Information</string>
+               <string>Local packages only</string>
+              </property>
+              <property name="checked">
+               <bool>true</bool>
               </property>
              </widget>
             </item>
-            <item>
-             <widget class="QCheckBox" name="installedFilesCheckBox">
+            <item row="0" column="1">
+             <widget class="QCheckBox" name="notRequiredCheckBox">
               <property name="toolTip">
-               <string>Select to show information about installed files</string>
+               <string>Select to list packages that are not dependencies of installed packages</string>
               </property>
               <property name="text">
-               <string>Installed Files</string>
+               <string>Not required Packages</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QCheckBox" name="userCheckBox">
+              <property name="toolTip">
+               <string>Select to show only packages installed to the user-site</string>
+              </property>
+              <property name="text">
+               <string>User-Site only</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QCheckBox" name="vulnerabilityCheckBox">
+              <property name="toolTip">
+               <string>Perform vulnerability checks based on &quot;Safety DB&quot;.</string>
+              </property>
+              <property name="text">
+               <string>Vulnerability Check</string>
+              </property>
+              <property name="checked">
+               <bool>true</bool>
               </property>
              </widget>
             </item>
            </layout>
           </item>
           <item>
-           <widget class="QTreeWidget" name="infoWidget">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-              <horstretch>0</horstretch>
-              <verstretch>1</verstretch>
-             </sizepolicy>
+           <widget class="QLabel" name="statusLabel"/>
+          </item>
+          <item>
+           <widget class="QSplitter" name="splitter">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
             </property>
+            <widget class="QTreeWidget" name="packagesList">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+               <horstretch>0</horstretch>
+               <verstretch>3</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="alternatingRowColors">
+              <bool>true</bool>
+             </property>
+             <property name="selectionMode">
+              <enum>QAbstractItemView::ExtendedSelection</enum>
+             </property>
+             <property name="rootIsDecorated">
+              <bool>false</bool>
+             </property>
+             <property name="itemsExpandable">
+              <bool>false</bool>
+             </property>
+             <property name="sortingEnabled">
+              <bool>true</bool>
+             </property>
+             <attribute name="headerDefaultSectionSize">
+              <number>150</number>
+             </attribute>
+             <column>
+              <property name="text">
+               <string>Package</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Installed Version</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Available Version</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Affected Version</string>
+              </property>
+             </column>
+            </widget>
+            <widget class="QWidget" name="widget" native="true">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>1</verstretch>
+              </sizepolicy>
+             </property>
+             <layout class="QVBoxLayout" name="verticalLayout_3">
+              <property name="leftMargin">
+               <number>0</number>
+              </property>
+              <property name="topMargin">
+               <number>0</number>
+              </property>
+              <property name="rightMargin">
+               <number>0</number>
+              </property>
+              <property name="bottomMargin">
+               <number>0</number>
+              </property>
+              <item>
+               <layout class="QHBoxLayout" name="horizontalLayout_7">
+                <item>
+                 <widget class="QCheckBox" name="verboseCheckBox">
+                  <property name="toolTip">
+                   <string>Select to show verbose package information</string>
+                  </property>
+                  <property name="text">
+                   <string>Verbose Information</string>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QCheckBox" name="installedFilesCheckBox">
+                  <property name="toolTip">
+                   <string>Select to show information about installed files</string>
+                  </property>
+                  <property name="text">
+                   <string>Installed Files</string>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
+              </item>
+              <item>
+               <widget class="QTreeWidget" name="infoWidget">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+                  <horstretch>0</horstretch>
+                  <verstretch>1</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="alternatingRowColors">
+                 <bool>true</bool>
+                </property>
+                <property name="rootIsDecorated">
+                 <bool>false</bool>
+                </property>
+                <property name="itemsExpandable">
+                 <bool>false</bool>
+                </property>
+                <property name="allColumnsShowFocus">
+                 <bool>true</bool>
+                </property>
+                <property name="wordWrap">
+                 <bool>true</bool>
+                </property>
+                <property name="columnCount">
+                 <number>2</number>
+                </property>
+                <attribute name="headerVisible">
+                 <bool>false</bool>
+                </attribute>
+                <attribute name="headerStretchLastSection">
+                 <bool>false</bool>
+                </attribute>
+                <column>
+                 <property name="text">
+                  <string notr="true">1</string>
+                 </property>
+                </column>
+                <column>
+                 <property name="text">
+                  <string notr="true">2</string>
+                 </property>
+                </column>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </widget>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <item>
+             <spacer name="horizontalSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QToolButton" name="refreshButton">
+              <property name="toolTip">
+               <string>Press to refresh the lists</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="upgradeButton">
+              <property name="toolTip">
+               <string>Press to upgrade the selected packages</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="upgradeAllButton">
+              <property name="toolTip">
+               <string>Press to upgrade all listed packages</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="uninstallButton">
+              <property name="toolTip">
+               <string>Press to uninstall the selected package</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="showPackageDetailsButton">
+              <property name="toolTip">
+               <string>Press to show details for the selected entry</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_2">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QToolButton" name="searchToggleButton">
+              <property name="toolTip">
+               <string>Toggle to show or hide the search window</string>
+              </property>
+              <property name="checkable">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item>
+        <widget class="QWidget" name="searchWidget" native="true">
+         <layout class="QVBoxLayout" name="verticalLayout_2">
+          <property name="leftMargin">
+           <number>0</number>
+          </property>
+          <property name="topMargin">
+           <number>0</number>
+          </property>
+          <property name="rightMargin">
+           <number>0</number>
+          </property>
+          <property name="bottomMargin">
+           <number>0</number>
+          </property>
+          <item>
+           <layout class="QGridLayout" name="gridLayout">
+            <item row="0" column="2" rowspan="2">
+             <widget class="QToolButton" name="searchButton">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="toolTip">
+               <string>Press to start the search</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="0">
+             <widget class="QLabel" name="label">
+              <property name="text">
+               <string>Package</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QLineEdit" name="searchEditName">
+              <property name="toolTip">
+               <string>Enter the search term for the package name</string>
+              </property>
+              <property name="placeholderText">
+               <string>Enter search term</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <widget class="QWidget" name="searchOptionsWidget" native="true">
+            <layout class="QVBoxLayout" name="verticalLayout">
+             <property name="leftMargin">
+              <number>0</number>
+             </property>
+             <property name="topMargin">
+              <number>0</number>
+             </property>
+             <property name="rightMargin">
+              <number>0</number>
+             </property>
+             <property name="bottomMargin">
+              <number>0</number>
+             </property>
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="QTreeWidget" name="searchResultList">
             <property name="alternatingRowColors">
              <bool>true</bool>
             </property>
+            <property name="selectionMode">
+             <enum>QAbstractItemView::ExtendedSelection</enum>
+            </property>
             <property name="rootIsDecorated">
              <bool>false</bool>
             </property>
@@ -207,270 +435,278 @@
             <property name="wordWrap">
              <bool>true</bool>
             </property>
-            <property name="columnCount">
-             <number>2</number>
-            </property>
-            <attribute name="headerVisible">
-             <bool>false</bool>
-            </attribute>
-            <attribute name="headerStretchLastSection">
-             <bool>false</bool>
-            </attribute>
+            <column>
+             <property name="text">
+              <string>Package</string>
+             </property>
+            </column>
             <column>
              <property name="text">
-              <string notr="true">1</string>
+              <string>Version</string>
+             </property>
+            </column>
+            <column>
+             <property name="text">
+              <string>Released</string>
              </property>
             </column>
             <column>
              <property name="text">
-              <string notr="true">2</string>
+              <string>Description</string>
              </property>
             </column>
            </widget>
           </item>
+          <item>
+           <widget class="QLabel" name="searchInfoLabel"/>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <item>
+             <spacer name="horizontalSpacer_3">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QToolButton" name="installButton">
+              <property name="toolTip">
+               <string>Press to install the selected package</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="installUserSiteButton">
+              <property name="toolTip">
+               <string>Press to install the selected package to the user site</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="showDetailsButton">
+              <property name="toolTip">
+               <string>Press to show details for the selected entry</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_4">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="dependenciesPage">
+      <layout class="QVBoxLayout" name="verticalLayout_8">
+       <item>
+        <widget class="QGroupBox" name="groupBox">
+         <property name="title">
+          <string>View Type</string>
+         </property>
+         <layout class="QHBoxLayout" name="horizontalLayout_5">
+          <item>
+           <widget class="QRadioButton" name="requiresButton">
+            <property name="toolTip">
+             <string>Select to show which package requires other packages</string>
+            </property>
+            <property name="text">
+             <string>Requires</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QRadioButton" name="requiredByButton">
+            <property name="toolTip">
+             <string>Select to show which package is required by others</string>
+            </property>
+            <property name="text">
+             <string>Required By</string>
+            </property>
+           </widget>
+          </item>
          </layout>
         </widget>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QToolButton" name="refreshButton">
-          <property name="toolTip">
-           <string>Press to refresh the lists</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="upgradeButton">
-          <property name="toolTip">
-           <string>Press to upgrade the selected packages</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="upgradeAllButton">
-          <property name="toolTip">
-           <string>Press to upgrade all listed packages</string>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_4">
+         <item>
+          <widget class="QCheckBox" name="localDepCheckBox">
+           <property name="toolTip">
+            <string>Select to show only dependencies of locally installed packages</string>
+           </property>
+           <property name="text">
+            <string>Local packages only</string>
+           </property>
+           <property name="checked">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QCheckBox" name="userDepCheckBox">
+           <property name="toolTip">
+            <string>Select to show only dependencies of packages installed to the user-site</string>
+           </property>
+           <property name="text">
+            <string>User-Site only</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QSplitter" name="splitter_2">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <widget class="QTreeWidget" name="dependenciesList">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+            <horstretch>0</horstretch>
+            <verstretch>3</verstretch>
+           </sizepolicy>
           </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="uninstallButton">
-          <property name="toolTip">
-           <string>Press to uninstall the selected package</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="showPackageDetailsButton">
-          <property name="toolTip">
-           <string>Press to show details for the selected entry</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QToolButton" name="searchToggleButton">
-          <property name="toolTip">
-           <string>Toggle to show or hide the search window</string>
-          </property>
-          <property name="checkable">
+          <property name="alternatingRowColors">
            <bool>true</bool>
           </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QWidget" name="searchWidget" native="true">
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-      <item>
-       <layout class="QGridLayout" name="gridLayout">
-        <item row="0" column="2" rowspan="2">
-         <widget class="QToolButton" name="searchButton">
-          <property name="enabled">
+          <property name="sortingEnabled">
+           <bool>true</bool>
+          </property>
+          <property name="expandsOnDoubleClick">
            <bool>false</bool>
           </property>
-          <property name="toolTip">
-           <string>Press to start the search</string>
-          </property>
+          <attribute name="headerDefaultSectionSize">
+           <number>150</number>
+          </attribute>
+          <column>
+           <property name="text">
+            <string>Package</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Installed Version</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Required Version</string>
+           </property>
+          </column>
          </widget>
-        </item>
-        <item row="0" column="0">
-         <widget class="QLabel" name="label">
-          <property name="text">
-           <string>Package</string>
+         <widget class="QTreeWidget" name="dependencyInfoWidget">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+            <horstretch>0</horstretch>
+            <verstretch>1</verstretch>
+           </sizepolicy>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QLineEdit" name="searchEditName">
-          <property name="toolTip">
-           <string>Enter the search term for the package name</string>
+          <property name="alternatingRowColors">
+           <bool>true</bool>
+          </property>
+          <property name="rootIsDecorated">
+           <bool>false</bool>
+          </property>
+          <property name="itemsExpandable">
+           <bool>false</bool>
           </property>
-          <property name="placeholderText">
-           <string>Enter search term</string>
+          <property name="allColumnsShowFocus">
+           <bool>true</bool>
+          </property>
+          <property name="wordWrap">
+           <bool>true</bool>
+          </property>
+          <property name="columnCount">
+           <number>2</number>
           </property>
+          <attribute name="headerVisible">
+           <bool>false</bool>
+          </attribute>
+          <attribute name="headerStretchLastSection">
+           <bool>false</bool>
+          </attribute>
+          <column>
+           <property name="text">
+            <string notr="true">1</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string notr="true">2</string>
+           </property>
+          </column>
          </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QWidget" name="searchOptionsWidget" native="true">
-        <layout class="QVBoxLayout" name="verticalLayout">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
+        </widget>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_6">
+         <item>
+          <spacer name="horizontalSpacer_5">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QToolButton" name="refreshDependenciesButton">
+           <property name="toolTip">
+            <string>Press to refresh the dependency tree</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="showDepPackageDetailsButton">
+           <property name="toolTip">
+            <string>Press to show details for the selected entry</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_6">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
         </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="QTreeWidget" name="searchResultList">
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="selectionMode">
-         <enum>QAbstractItemView::ExtendedSelection</enum>
-        </property>
-        <property name="rootIsDecorated">
-         <bool>false</bool>
-        </property>
-        <property name="itemsExpandable">
-         <bool>false</bool>
-        </property>
-        <property name="allColumnsShowFocus">
-         <bool>true</bool>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-        <column>
-         <property name="text">
-          <string>Package</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Version</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Released</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Description</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="searchInfoLabel"/>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_3">
-        <item>
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QToolButton" name="installButton">
-          <property name="toolTip">
-           <string>Press to install the selected package</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="installUserSiteButton">
-          <property name="toolTip">
-           <string>Press to install the selected package to the user site</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="showDetailsButton">
-          <property name="toolTip">
-           <string>Press to show details for the selected entry</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_4">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-     </layout>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
   </layout>
@@ -483,6 +719,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
+  <tabstop>viewToggleButton</tabstop>
   <tabstop>environmentsComboBox</tabstop>
   <tabstop>pipMenuButton</tabstop>
   <tabstop>localCheckBox</tabstop>
@@ -505,6 +742,14 @@
   <tabstop>installButton</tabstop>
   <tabstop>installUserSiteButton</tabstop>
   <tabstop>showDetailsButton</tabstop>
+  <tabstop>requiresButton</tabstop>
+  <tabstop>requiredByButton</tabstop>
+  <tabstop>localDepCheckBox</tabstop>
+  <tabstop>userDepCheckBox</tabstop>
+  <tabstop>dependenciesList</tabstop>
+  <tabstop>dependencyInfoWidget</tabstop>
+  <tabstop>refreshDependenciesButton</tabstop>
+  <tabstop>showDepPackageDetailsButton</tabstop>
  </tabstops>
  <resources/>
  <connections/>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_cs.ts
--- a/eric7/i18n/eric7_cs.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_cs.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -55439,11 +55439,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -55464,6 +55470,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -55481,11 +55488,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -55542,6 +55551,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -55591,104 +55601,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished">Jméno:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished">Verze:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished">Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
@@ -55697,143 +55752,148 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished">Konfigurovat...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Chyby: {0}</translation>
     </message>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_de.qm
Binary file eric7/i18n/eric7_de.qm has changed
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_de.ts
--- a/eric7/i18n/eric7_de.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_de.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -51877,11 +51877,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation>Umschalten, um den Abhängigkeitsbaum anzuzeigen bzw. auszublenden</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation>Auswählen, um nur lokal installierte Pakete anzuzeigen</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation>Nur lokale Pakete</translation>
     </message>
@@ -51902,6 +51908,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation>Nur Nutzerverzeichnis</translation>
     </message>
@@ -51919,11 +51926,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation>Paket</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation>Installierte Version</translation>
     </message>
@@ -51980,6 +51989,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation>Drücken, um Details für den ausgewählten Eintrag anzuzeigen</translation>
     </message>
@@ -52029,104 +52039,149 @@
       <translation>Drücken, um die ausgewählten Pakete in das Python Nutzerverzeichnis zu installieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation>Ansichtstyp</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation>Auswählen, um anzuzeigen, welches Paket andere Pakete erwartet</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation>Erfordert</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation>Auswählen, um anzuzeigen, welches Paket von anderen Paketen erwartet wird</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation>Erfordert Von</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation>Auswählen, um nur die Abhängigkeiten für lokal installierte Packete anzuzeigen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation>Auswählen, um nur die Abhängigkeiten für im Nutzerverzeichnis installierte Packete anzuzeigen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation>Erwartete Version</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation>Drücken, um den Abhängigkeitsbaum zu erneuern</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation>pip Menü</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation>Name:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation>Version:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation>Speicherort:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation>Erfordert:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation>Kurzbeschreibung:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation>Homepage:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation>Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation>Autor Email:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation>Lizenz:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation>Metadaten Version:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation>Installer:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation>Klassifizierungen:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation>Einsprungpunkte:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation>Dateien:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation>Ermittle installierte Pakete...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation>Ermittle veraltete Pakete...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation>PyPI durchsuchen</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Fehler während der Suche nach &lt;b&gt;{0}&lt;/b&gt; empfangen.&lt;/p&gt;&lt;p&gt;Fehler: {1}&lt;/p&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation>
         <numerusform>%n Paket gefunden.</numerusform>
@@ -52134,142 +52189,147 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation>Zeige die ersten 20 gefundenen Pakete.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Es gab keine Ergebnisse für &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Keine detaillierten Paketinformationen für &lt;b&gt;{0}&lt;/b&gt; verfügbar.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation>Pip installieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation>Pip in Nutzerverzeichnis installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation>Pip reparieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation>Pakete installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation>Lokales Paket installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation>Paketanforderungen installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Ausgewählte Pakete neu installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation>Paketanforderungen deinstallieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation>Anforderungen erzeugen...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation>Verwundbarkeiten prüfen</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation>Verwundbarkeitsdatenbank aktualisieren</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
-      <translation>Zwischenspeicherinfo...</translation>
+      <source>Install Pip to User-Site</source>
+      <translation>Pip in Nutzerverzeichnis installieren</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation>Zwischengespeicherte Dateien...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation>Zwischengespeicherte Dateien löschen...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
-      <translation>Zwischenspeicher leeren...</translation>
+      <source>Repair Pip</source>
+      <translation>Pip reparieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation>Pakete installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
+      <translation>Lokales Paket installieren</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
-      <translation>Nutzerkonfiguration bearbeiten...</translation>
+      <source>Install Requirements</source>
+      <translation>Paketanforderungen installieren</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Ausgewählte Pakete neu installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation>Paketanforderungen deinstallieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation>Anforderungen erzeugen...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation>Verwundbarkeiten prüfen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation>Verwundbarkeitsdatenbank aktualisieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation>Zwischenspeicherinfo...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation>Zwischengespeicherte Dateien...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation>Zwischengespeicherte Dateien löschen...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation>Zwischenspeicher leeren...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation>Nutzerkonfiguration bearbeiten...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation>Umgebungskonfiguration bearbeiten...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation>Einstellungen...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation>Konfiguration bearbeiten</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation>Es konnte kein gültiger Konfigurationspfad ermittelt werden. Abbruch</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation>{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation>Betroffene Version:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation>Advisory:</translation>
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation>beliebig</translation>
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_empty.ts
--- a/eric7/i18n/eric7_empty.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_empty.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -51619,11 +51619,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -51644,6 +51650,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -51661,11 +51668,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -51722,6 +51731,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -51771,246 +51781,296 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_en.ts
--- a/eric7/i18n/eric7_en.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_en.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -51664,11 +51664,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -51689,6 +51695,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -51706,11 +51713,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -51767,6 +51776,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -51816,104 +51826,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation>
         <numerusform>%n package found.</numerusform>
@@ -51921,142 +51976,147 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_es.ts
--- a/eric7/i18n/eric7_es.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_es.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -51887,11 +51887,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation>Seleccionar para mostrar solo packages instalados localmente</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation>Packages locales solo</translation>
     </message>
@@ -51912,6 +51918,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation>Solo Site de Usuario</translation>
     </message>
@@ -51929,11 +51936,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation>Package</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation>Versión Instalada</translation>
     </message>
@@ -51990,6 +51999,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation>Pulsar para mostrar detalles para la entrada seleccionada</translation>
     </message>
@@ -52039,104 +52049,149 @@
       <translation>Seleccionar para instalar el package seleccionado en el site de usuario</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished">Requires</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation>Menu pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation>Nombre:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation>Versión:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation>Ubicación:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation>Requiere:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation>Resumen:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation>Página Home:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation>Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation>Correo electrónico del Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation>Licencia:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation>Versión de Metadatos:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation>Instalador:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation>Clasificadores:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation>Puntos de Entrada:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation>Archivos:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation>Obteniendo packages instalados...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation>Obteniendo packages antiguos...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation>Buscar PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Recibido error mientras se buscaba  &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation>
         <numerusform>%n package encontrado.</numerusform>
@@ -52144,142 +52199,147 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation>Mostrando los primeros 20 packages encontrados.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Sin resultados para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;No hay info de detalles de package disponible para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation>Instalar Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation>Instalar Pip en el Sitio de Usuario</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation>Reparar Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation>Instalar Packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation>Instalar Package Local</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation>Instalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Reinstalar los Packages Seleccionados</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation>Desinstalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation>Generar Requisitos...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
-      <translation>Mostrar info de Cache...</translation>
+      <source>Install Pip to User-Site</source>
+      <translation>Instalar Pip en el Sitio de Usuario</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation>Mostrar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation>Eliminar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
-      <translation>Purgar Cache...</translation>
+      <source>Repair Pip</source>
+      <translation>Reparar Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation>Instalar Packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
+      <translation>Instalar Package Local</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
-      <translation>Editar Configuración de Usuario...</translation>
+      <source>Install Requirements</source>
+      <translation>Instalar Requisitos</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Reinstalar los Packages Seleccionados</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation>Desinstalar Requisitos</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation>Generar Requisitos...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation>Mostrar info de Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation>Mostrar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation>Eliminar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation>Purgar Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation>Editar Configuración de Usuario...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation>Editar Configuración de Entorno...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation>Configurar...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation>Editar Configuración</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation>No hay una ruta válida de configuración determinada. Abortando</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished">cualquiera</translation>
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_fr.ts
--- a/eric7/i18n/eric7_fr.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_fr.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -55738,11 +55738,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation>Cocher pour montrer uniquement les packages installés localement</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation>Packages locaux uniquement</translation>
     </message>
@@ -55763,6 +55769,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -55780,11 +55787,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation>Package</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation>Version installée</translation>
     </message>
@@ -55841,6 +55850,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation>Cliquer pour montrer les détails de l'entrée sélectionnée</translation>
     </message>
@@ -55890,104 +55900,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished">Nécessitent</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation>Nom :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation>Version :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation>Nécessite :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation>Bilan :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation>Page d'accueil :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation>Auteur :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation>Courreil de l'auteur :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation>Licence :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation>Fichiers :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation>
         <numerusform>%n package trouvé.</numerusform>
@@ -55995,143 +56050,148 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation>Installer pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation>Réparer Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation>Installer des packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation>Installer un package local</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
+      <source>Repair Pip</source>
+      <translation>Réparer Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation>Installer des packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
+      <translation>Installer un package local</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
-      <translation>Éditer la configuration utilisateur...</translation>
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation>Éditer la configuration utilisateur...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation>Configuration...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation>Éditer la configuration</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation>Pas de chemin de configuration déterminé. Annulation</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>&lt;p&gt;The package search did not return anything.&lt;/p&gt;</source>
       <translation type="vanished">&lt;p&gt;La recherche de package n'a rien retourné.&lt;/p&gt;</translation>
     </message>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_it.ts
--- a/eric7/i18n/eric7_it.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_it.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -57548,11 +57548,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -57573,6 +57579,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -57590,11 +57597,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -57651,6 +57660,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -57700,104 +57710,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished">Nome:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished">Versione:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished">Autore:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
@@ -57805,142 +57860,147 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished">Configura...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished">{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_pt.ts
--- a/eric7/i18n/eric7_pt.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_pt.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -57045,11 +57045,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -57070,6 +57076,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -57087,11 +57094,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -57148,6 +57157,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -57197,104 +57207,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished">Nome:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished">Versão:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished">Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished">Correio Eletrónico do Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
@@ -57302,143 +57357,148 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished">Configurar...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Erro: {0}</translation>
     </message>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_ru.ts
--- a/eric7/i18n/eric7_ru.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_ru.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -51967,11 +51967,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation>Разрешить отображать только локально установленные пакеты</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation>Только локальные пакеты</translation>
     </message>
@@ -51992,6 +51998,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation>Только в user-site</translation>
     </message>
@@ -52009,11 +52016,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation>Пакет</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation>Установленная версия</translation>
     </message>
@@ -52070,6 +52079,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation>Показать информацию для выбранной записи</translation>
     </message>
@@ -52119,104 +52129,149 @@
       <translation>Установить выбранный пакет в user site</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished">Зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation>Меню pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation>Имя:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation>Версия:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation>Расположение:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation>Зависимости:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation>Аннотация:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation>Домашняя страница:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation>Автор:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation>Email автора:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation>Лицензия:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation>Версия Metadata:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation>Установщик:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation>Классификаторы:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation>Точки входа:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation>Файлы:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation>Получение списка установленных пакетов...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation>Получение списка обновленных пакетов...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation>Поиск в PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Получена ошибка при поиске &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Ошибка: {1}&lt;/p&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation>
         <numerusform>Найден %n пакет.</numerusform>
@@ -52225,142 +52280,147 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation>Показаны первые 20 найденных пакетов.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Нет результатов по запросу &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Недоступна подробная информация о пакете &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation>Инсталировать Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation>Инсталировать Pip в User-Site</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation>Восстановить Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation>Установить пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation>Установить локальный пакет</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation>Установить зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Переинсталировать выбранные пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation>Деинсталировать зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation>Генерация зависимостей...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
-      <translation>Показать информацию о кэше...</translation>
+      <source>Install Pip to User-Site</source>
+      <translation>Инсталировать Pip в User-Site</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation>Показать кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation>Удалить кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
-      <translation>Очистить кэш...</translation>
+      <source>Repair Pip</source>
+      <translation>Восстановить Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation>Установить пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
+      <translation>Установить локальный пакет</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
-      <translation>Правка конфигурации пользователя...</translation>
+      <source>Install Requirements</source>
+      <translation>Установить зависимости</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Переинсталировать выбранные пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation>Деинсталировать зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation>Генерация зависимостей...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation>Показать информацию о кэше...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation>Показать кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation>Удалить кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation>Очистить кэш...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation>Правка конфигурации пользователя...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation>Правка конфигурации среды окружения...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation>Настроить...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation>Правка конфигурации</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation>Не определен допустимый путь конфигурации. Прерывание</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished">любой</translation>
+    </message>
   </context>
   <context>
     <name>PipPage</name>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_tr.ts
--- a/eric7/i18n/eric7_tr.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_tr.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -55749,11 +55749,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -55774,6 +55780,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -55791,11 +55798,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -55852,6 +55861,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -55901,104 +55911,149 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished">Adı:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished">Sürüm:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished">Yazar:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
@@ -56006,143 +56061,148 @@
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished">Ayarlanıyor...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Hata: {0}</translation>
     </message>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/i18n/eric7_zh_CN.ts
--- a/eric7/i18n/eric7_zh_CN.ts	Tue Mar 22 19:31:29 2022 +0100
+++ b/eric7/i18n/eric7_zh_CN.ts	Wed Mar 23 20:21:42 2022 +0100
@@ -56622,11 +56622,17 @@
     <name>PipPackagesWidget</name>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Toggle to show or hide the dependency tree view</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show only locally-installed packages</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Local packages only</source>
       <translation type="unfinished" />
     </message>
@@ -56647,6 +56653,7 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>User-Site only</source>
       <translation type="unfinished" />
     </message>
@@ -56664,11 +56671,13 @@
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed Version</source>
       <translation type="unfinished" />
     </message>
@@ -56725,6 +56734,7 @@
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to show details for the selected entry</source>
       <translation type="unfinished" />
     </message>
@@ -56774,247 +56784,297 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>View Type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package requires other packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Requires</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show which package is required by others</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required By</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of locally installed packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Select to show only dependencies of packages installed to the user-site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Required Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to refresh the dependency tree</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="185" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="228" />
       <source>Name:</source>
       <translation type="unfinished">名称:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="229" />
       <source>Version:</source>
       <translation type="unfinished">版本:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="230" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="231" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="232" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="233" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
       <source>Author:</source>
       <translation type="unfinished">作者:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="413" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="429" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1028" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="843" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="878" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="844" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="879" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="893" />
       <source>%n package(s) found.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="895" />
       <source>Showing first 20 packages found.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="868" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="866" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="901" />
       <source>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
       <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1043" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1049" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1179" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1053" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1056" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1063" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1066" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1073" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1077" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <source>Show Cache Info...</source>
+      <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1084" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1087" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1090" />
-      <source>Purge Cache...</source>
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1214" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1088" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1091" />
+      <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1095" />
-      <source>Edit User Configuration...</source>
+      <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1098" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1101" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1104" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1108" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1112" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1119" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1122" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1125" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1130" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1133" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1103" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1138" />
       <source>Configure...</source>
       <translation type="unfinished">配置…</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1288" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1277" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1336" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1312" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1302" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1278" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1337" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1324" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1456" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1491" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished">{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1478" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1513" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1516" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1631" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">错误:{0}</translation>
     </message>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/icons/breeze-dark/viewListTree.svg
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/icons/breeze-dark/viewListTree.svg	Wed Mar 23 20:21:42 2022 +0100
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   viewBox="0 0 22 22"
+   version="1.1"
+   id="svg6"
+   sodipodi:docname="viewListTree.svg"
+   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview8"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     inkscape:pagecheckerboard="0"
+     showgrid="false"
+     inkscape:zoom="28.636364"
+     inkscape:cx="11"
+     inkscape:cy="11"
+     inkscape:window-width="2580"
+     inkscape:window-height="1080"
+     inkscape:window-x="-4"
+     inkscape:window-y="293"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg6" />
+  <defs
+     id="defs3051">
+    <style
+       type="text/css"
+       id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+  <path
+     style="fill:#eff0f1;fill-opacity:1;stroke:none;stroke-width:1.25"
+     d="m 1,1 v 8.75 h 7.5 v 7.5 h 1.25 2.5 V 21 H 21 V 12.25 H 12.25 V 16 H 9.75 V 9.75 6 h 2.5 V 9.75 H 21 V 1 H 12.25 V 4.75 H 9.75 V 1 Z M 2.25,2.25 H 8.5 V 8.5 H 2.25 Z m 11.25,0 h 6.25 V 8.5 H 13.5 Z"
+     class="ColorScheme-Text"
+     id="path4" />
+</svg>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/icons/breeze-light/viewListTree.svg
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/icons/breeze-light/viewListTree.svg	Wed Mar 23 20:21:42 2022 +0100
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+ <path 
+    style="fill:currentColor;fill-opacity:1;stroke:none" 
+    d="M 3 3 L 3 10 L 9 10 L 9 16 L 10 16 L 12 16 L 12 19 L 19 19 L 19 12 L 12 12 L 12 15 L 10 15 L 10 10 L 10 7 L 12 7 L 12 10 L 19 10 L 19 3 L 12 3 L 12 6 L 10 6 L 10 3 L 3 3 z M 4 4 L 9 4 L 9 9 L 4 9 L 4 4 z M 13 4 L 18 4 L 18 9 L 13 9 L 13 4 z "
+	class="ColorScheme-Text"
+    />  
+</svg>
diff -r 62bd225b489f -r d8946c2a22b5 eric7/icons/oxygen/viewListTree.png
Binary file eric7/icons/oxygen/viewListTree.png has changed

eric ide

mercurial