--- 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()