diff -r ae4c3da05550 -r ca442cd49b9e eric7/PipInterface/PipFreezeDialog.py --- a/eric7/PipInterface/PipFreezeDialog.py Sun Mar 13 12:46:57 2022 +0100 +++ b/eric7/PipInterface/PipFreezeDialog.py Sun Mar 13 15:20:26 2022 +0100 @@ -66,13 +66,17 @@ """ e.accept() - @pyqtSlot(bool) - def on_localCheckBox_clicked(self, checked): + @pyqtSlot() + def on_localCheckBox_clicked(self): """ Private slot handling the switching of the local mode. - - @param checked state of the local check box - @type bool + """ + self.__refresh() + + @pyqtSlot() + def on_userCheckBox_clicked(self): + """ + Private slot handling the switching of the user-site mode. """ self.__refresh() @@ -135,29 +139,25 @@ self.__requirementsAvailable = False self.__environmentName = venvName - interpreter = self.__pip.getVirtualenvInterpreter(venvName) - if not interpreter: - return - - args = ["-m", "pip", "freeze"] - if self.localCheckBox.isChecked(): - args.append("--local") - if self.requirementsFilePicker.text(): - fileName = Utilities.toNativeSeparators( - self.requirementsFilePicker.text()) - if os.path.exists(fileName): - args.append("--requirement") - args.append(fileName) + fileName = ( + Utilities.toNativeSeparators(self.requirementsFilePicker.text()) + if self.requirementsFilePicker.text() else + "" + ) with EricOverrideCursor(): - success, output = self.__pip.runProcess(args, interpreter) + specifiers = self.__pip.getFrozenPackages( + venvName, localPackages=self.localCheckBox.isChecked(), + usersite=self.userCheckBox.isChecked(), requirement=fileName) - if success: - self.requirementsEdit.setPlainText(output) + if specifiers: + self.requirementsEdit.setPlainText( + "\n".join(specifiers) + "\n") self.__requirementsAvailable = True else: - self.requirementsEdit.setPlainText( - self.tr("No output generated by 'pip freeze'.")) + self.requirementsEdit.setPlainText(self.tr( + "No package specifiers generated by 'pip freeze'.") + ) self.__updateButtons()