diff --git a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java index 6efeae0a4ea1..5ee781f64b5c 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java @@ -64,9 +64,30 @@ public class VirtualEnvSdkFlavor extends CPythonSdkFlavor { for (VirtualFile file : getCondaDefaultLocations()) { candidates.addAll(findInDirectory(file)); } + + final VirtualFile pyEnvLocation = getPyEnvDefaultLocations(); + if (pyEnvLocation != null) { + candidates.addAll(findInDirectory(pyEnvLocation)); + } return candidates; } + @Nullable + public static VirtualFile getPyEnvDefaultLocations() { + final String path = System.getenv().get("PYENV_ROOT"); + if (!StringUtil.isEmpty(path)) { + final VirtualFile pyEnvRoot = LocalFileSystem.getInstance().findFileByPath(FileUtil.expandUserHome(path).replace('\\', '/')); + if (pyEnvRoot != null) { + return pyEnvRoot.findFileByRelativePath("versions"); + } + } + final VirtualFile userHome = LocalFileSystem.getInstance().findFileByPath(SystemProperties.getUserHome().replace('\\','/')); + if (userHome != null) { + return userHome.findFileByRelativePath(".pyenv/versions"); + } + return null; + } + public static List getCondaDefaultLocations() { List roots = new ArrayList(); final VirtualFile userHome = LocalFileSystem.getInstance().findFileByPath(SystemProperties.getUserHome().replace('\\','/'));