--- a/RefactoringRope/RefactoringServer.py Sat Aug 11 15:54:39 2018 +0200 +++ b/RefactoringRope/RefactoringServer.py Sun Sep 16 13:13:51 2018 +0200 @@ -14,6 +14,7 @@ pass import os +import sys from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMenu, QApplication, QAction @@ -2065,6 +2066,8 @@ if self.__projectLanguage.startswith("Python"): try: # new code using virtual environments + venvManager = e5App().getObject("VirtualEnvManager") + # get virtual environment from project first venvName = self.__e5project.getDebugProperty("VIRTUALENV") if not venvName: @@ -2072,18 +2075,32 @@ if self.__projectLanguage == "Python2": # Python 2 venvName = Preferences.getDebugger("Python2VirtualEnv") + if not venvName and sys.version_info[0] == 2: + try: + venvName, _ = \ + venvManager.getDefaultEnvironment() + except AttributeError: + # ignore for eric6 < 18.10 + pass elif self.__projectLanguage == "Python3": # Python 3 venvName = Preferences.getDebugger("Python3VirtualEnv") + if not venvName and sys.version_info[0] == 3: + try: + venvName, _ = \ + venvManager.getDefaultEnvironment() + except AttributeError: + # ignore for eric6 < 18.10 + pass else: venvName = "" if venvName: - interpreter = e5App().getObject("VirtualEnvManager")\ - .getVirtualenvInterpreter(venvName) + interpreter = \ + venvManager.getVirtualenvInterpreter(venvName) else: interpreter = "" except KeyError: - # backward compatibility (eric <18.07) + # backward compatibility (eric < 18.07) # get interpreter from project first interpreter = self.__e5project.getDebugProperty("INTERPRETER") if not interpreter or not Utilities.isinpath(interpreter):