src/eric7/Project/Project.py

branch
eric7
changeset 9392
e4ef29776404
parent 9390
9dba609bcc23
child 9413
80c06d472826
--- a/src/eric7/Project/Project.py	Fri Oct 07 14:27:24 2022 +0200
+++ b/src/eric7/Project/Project.py	Fri Oct 07 14:48:48 2022 +0200
@@ -5056,6 +5056,26 @@
         )
         self.actions.append(self.upgradeVenvAct)
 
+        self.recreateVenvAct = EricAction(
+            self.tr("Recreate"),
+            self.tr("&Recreate"),
+            0,
+            0,
+            self.embeddedEnvironmentGrp,
+            "project_venv_recreate",
+        )
+        self.recreateVenvAct.setStatusTip(self.tr("Recreate the embedded environment."))
+        self.recreateVenvAct.setWhatsThis(
+            self.tr(
+                "<b>Recreate</b>"
+                "<p>This opens a dialog to enter the parameters to recreate the"
+                " embedded virtual environment of the project. The existing environment"
+                " is cleared first.</p>"
+            )
+        )
+        self.recreateVenvAct.triggered.connect(self.__createEmbeddedEnvironment)
+        self.actions.append(self.recreateVenvAct)
+
         self.closeAct.setEnabled(False)
         self.saveAct.setEnabled(False)
         self.saveasAct.setEnabled(False)
@@ -5158,6 +5178,8 @@
         self.environmentMenu.addSeparator()
         self.environmentMenu.addAction(self.configureVenvAct)
         self.environmentMenu.addAction(self.upgradeVenvAct)
+        self.environmentMenu.addSeparator()
+        self.environmentMenu.addAction(self.recreateVenvAct)
 
         # build the packagers menu
         self.packagersMenu.setTearOffEnabled(True)
@@ -6855,6 +6877,9 @@
         args = []
         if upgrade:
             args.append("--upgrade")
+        else:
+            if os.path.exists(os.path.join(self.getProjectPath(), ".venv")):
+                args.append("--clear")
         if withSystemSitePackages:
             args.append("--system-site-packages")
         args.append(configuration["targetDirectory"])
@@ -6874,7 +6899,7 @@
 
         if upgrade and not withSystemSitePackages:
             # re-install the project into the upgraded environment
-            # Note: seems to fail with access to system site-packages
+            # Note: seems to fail on some systems with access to system site-packages
             self.__installProjectIntoEnvironment()
 
     @pyqtSlot()

eric ide

mercurial