--- a/src/eric7/VirtualEnv/VirtualenvAddEditDialog.py Fri Sep 27 10:28:32 2024 +0200 +++ b/src/eric7/VirtualEnv/VirtualenvAddEditDialog.py Fri Sep 27 10:59:59 2024 +0200 @@ -51,8 +51,12 @@ self.__venvName = "" if metadata is None else metadata.name self.__manager = manager self.__editMode = bool(self.__venvName) - self.__serverInterface = ericApp().getObject("EricServer") - self.__fsInterface = self.__serverInterface.getServiceInterface("FileSystem") + try: + self.__serverInterface = ericApp().getObject("EricServer") + self.__fsInterface = self.__serverInterface.getServiceInterface("FileSystem") + except KeyError: + self.__serverInterface = None + self.__fsInterface = None if self.__editMode: self.setWindowTitle(self.tr("Edit Virtual Environment")) @@ -63,13 +67,19 @@ if not self.__envBaseDir: self.__envBaseDir = OSUtilities.getHomeDir() - self.serverRadioButton.setEnabled(self.__serverInterface.isServerConnected()) + self.serverRadioButton.setEnabled( + self.__serverInterface is not None + and self.__serverInterface.isServerConnected() + ) self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) self.targetDirectoryPicker.setWindowTitle( self.tr("Virtualenv Target Directory") ) - if self.__serverInterface.isServerConnected(): + if ( + self.__serverInterface is not None + and self.__serverInterface.isServerConnected() + ): self.targetDirectoryPicker.setRemote( metadata.is_eric_server if metadata else False ) @@ -78,7 +88,10 @@ self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) self.pythonExecPicker.setWindowTitle(self.tr("Python Interpreter")) - if self.__serverInterface.isServerConnected(): + if ( + self.__serverInterface is not None + and self.__serverInterface.isServerConnected() + ): self.pythonExecPicker.setRemote( metadata.is_eric_server if metadata else False ) @@ -163,6 +176,7 @@ and ( ( self.serverRadioButton.isChecked() + and self.__fsInterface is not None and self.__fsInterface.exists(self.targetDirectoryPicker.text()) ) or ( @@ -177,6 +191,7 @@ and ( ( self.serverRadioButton.isChecked() + and self.__fsInterface is not None and self.__fsInterface.access( self.pythonExecPicker.text(), "execute" ) @@ -283,7 +298,10 @@ @param checked state of the radio button @type bool """ - if self.__serverInterface.isServerConnected(): + if ( + self.__serverInterface is not None + and self.__serverInterface.isServerConnected() + ): self.targetDirectoryPicker.setRemote(checked) self.pythonExecPicker.setRemote(checked) self.serverLineEdit.setText(