diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyPipfileSdkConfiguration.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyPipfileSdkConfiguration.kt index 33759701a74c..4bd3277a2f38 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyPipfileSdkConfiguration.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyPipfileSdkConfiguration.kt @@ -134,7 +134,7 @@ internal class PyPipfileSdkConfiguration : PyProjectSdkConfigurationExtension { return@withBackgroundProgress it } - val path = withContext(Dispatchers.IO) { VirtualEnvReader.Instance.findPythonInPythonRoot(Path.of(pipEnv)) } + val path = withContext(Dispatchers.IO) { VirtualEnvReader().findPythonInPythonRoot(Path.of(pipEnv)) } if (path == null) { return@withBackgroundProgress PyResult.localizedError(PySdkBundle.message("cannot.find.executable", "python", pipEnv)) } diff --git a/python/openapi/src/com/jetbrains/python/venvReader/VirtualEnvReader.kt b/python/openapi/src/com/jetbrains/python/venvReader/VirtualEnvReader.kt index 55e59c143f08..49af4fe2da2e 100644 --- a/python/openapi/src/com/jetbrains/python/venvReader/VirtualEnvReader.kt +++ b/python/openapi/src/com/jetbrains/python/venvReader/VirtualEnvReader.kt @@ -45,7 +45,6 @@ class VirtualEnvReader private constructor( null -> null }) - private constructor() : this(forcedVars = null, forcedOs = null) /** * Dir with virtual envs @@ -222,8 +221,7 @@ class VirtualEnvReader private constructor( companion object { - @JvmStatic - val Instance: VirtualEnvReader = VirtualEnvReader() + internal val Instance: VirtualEnvReader = VirtualEnvReader(forcedVars = null, forcedOs = null) /** @@ -241,4 +239,10 @@ class VirtualEnvReader private constructor( private val WIN_BINS = setOf("pypy.exe", "python.exe") private fun getLocalEelIfApp(): EelApi? = if (ApplicationManager.getApplication() != null) localEel else null } -} \ No newline at end of file +} + +/** + * Default (production) instance + */ +@ApiStatus.Internal +fun VirtualEnvReader(): VirtualEnvReader = Instance \ No newline at end of file diff --git a/python/python-pyproject/src/com/intellij/python/pyproject/model/internal/pyProjectToml/tomFileTools.kt b/python/python-pyproject/src/com/intellij/python/pyproject/model/internal/pyProjectToml/tomFileTools.kt index a2e557bf15dc..99c96921d7c4 100644 --- a/python/python-pyproject/src/com/intellij/python/pyproject/model/internal/pyProjectToml/tomFileTools.kt +++ b/python/python-pyproject/src/com/intellij/python/pyproject/model/internal/pyProjectToml/tomFileTools.kt @@ -61,7 +61,7 @@ suspend fun walkFileSystemNoTomlContent( // default name is popular enough to make a shortcut if (dirName == VirtualEnvReader.DEFAULT_VIRTUALENV_DIRNAME - || VirtualEnvReader.Instance.findPythonInPythonRoot(directory) != null) { + || VirtualEnvReader().findPythonInPythonRoot(directory) != null) { // Venv: exclude and skip excludedDirs.add(directory) FileVisitResult.SKIP_SUBTREE diff --git a/python/python-sdk/src/com/jetbrains/python/sdk/PySdkSettings.kt b/python/python-sdk/src/com/jetbrains/python/sdk/PySdkSettings.kt index d432122f9b4f..458412a1f218 100644 --- a/python/python-sdk/src/com/jetbrains/python/sdk/PySdkSettings.kt +++ b/python/python-sdk/src/com/jetbrains/python/sdk/PySdkSettings.kt @@ -95,7 +95,7 @@ class PySdkSettings : PersistentStateComponent { } private val defaultVirtualEnvRoot: @SystemIndependent String - get() = VirtualEnvReader.Instance.getVEnvRootDir().absolutePathString() + get() = VirtualEnvReader().getVEnvRootDir().absolutePathString() private val userHome: @SystemIndependent String get() = FileUtil.toSystemIndependentName(SystemProperties.getUserHome()) diff --git a/python/python-sdk/src/com/jetbrains/python/sdk/impl/PythonBinaryExt.kt b/python/python-sdk/src/com/jetbrains/python/sdk/impl/PythonBinaryExt.kt index d33974dd0976..af1739326f35 100644 --- a/python/python-sdk/src/com/jetbrains/python/sdk/impl/PythonBinaryExt.kt +++ b/python/python-sdk/src/com/jetbrains/python/sdk/impl/PythonBinaryExt.kt @@ -21,5 +21,5 @@ fun PythonBinary.resolvePythonHome(): PythonHomePath = when (getEelDescriptor(). @RequiresBackgroundThread @ApiStatus.Internal fun PythonHomePath.resolvePythonBinary(): PythonBinary? { - return VirtualEnvReader.Instance.findPythonInPythonRoot(this) + return VirtualEnvReader().findPythonInPythonRoot(this) } diff --git a/python/python-sdk/src/com/jetbrains/python/sdk/legacy/PythonSdkUtil.java b/python/python-sdk/src/com/jetbrains/python/sdk/legacy/PythonSdkUtil.java index 51493fcaffa2..efd22ee21261 100644 --- a/python/python-sdk/src/com/jetbrains/python/sdk/legacy/PythonSdkUtil.java +++ b/python/python-sdk/src/com/jetbrains/python/sdk/legacy/PythonSdkUtil.java @@ -30,6 +30,7 @@ import com.jetbrains.python.sdk.CustomSdkHomePattern; import com.jetbrains.python.sdk.PyRemoteSdkAdditionalDataMarker; import com.jetbrains.python.sdk.PySdkUtil; import com.jetbrains.python.venvReader.VirtualEnvReader; +import com.jetbrains.python.venvReader.VirtualEnvReaderKt; import org.jetbrains.annotations.*; import java.io.File; @@ -199,7 +200,7 @@ public final class PythonSdkUtil { // It is only here for external plugins @RequiresBackgroundThread(generateAssertion = false) public static @Nullable String getPythonExecutable(@NotNull String rootPath) { - var python = VirtualEnvReader.getInstance().findPythonInPythonRoot(Path.of(rootPath)); + var python = VirtualEnvReaderKt.VirtualEnvReader().findPythonInPythonRoot(Path.of(rootPath)); return (python != null) ? python.toString() : null; } diff --git a/python/python-terminal/tests/com/intellij/python/junit5Tests/env/terminal/PyVirtualEnvTerminalCustomizerTest.kt b/python/python-terminal/tests/com/intellij/python/junit5Tests/env/terminal/PyVirtualEnvTerminalCustomizerTest.kt index fde4735e1fe0..27290ed5a418 100644 --- a/python/python-terminal/tests/com/intellij/python/junit5Tests/env/terminal/PyVirtualEnvTerminalCustomizerTest.kt +++ b/python/python-terminal/tests/com/intellij/python/junit5Tests/env/terminal/PyVirtualEnvTerminalCustomizerTest.kt @@ -124,7 +124,7 @@ class PyVirtualEnvTerminalCustomizerTest { Pair(Path(sdk.homePath!!), envDir.toRealPath().pathString) } else { - val venv = VirtualEnvReader.Instance.findPythonInPythonRoot(tempDirFixture.get())!! + val venv = VirtualEnvReader().findPythonInPythonRoot(tempDirFixture.get())!! Pair(venv, tempDirFixture.get().name) } diff --git a/python/python-test-env/plain/src/com/intellij/python/test/env/plain/VirtualenvPyEnvironmentProvider.kt b/python/python-test-env/plain/src/com/intellij/python/test/env/plain/VirtualenvPyEnvironmentProvider.kt index d68f15401304..23661720f951 100644 --- a/python/python-test-env/plain/src/com/intellij/python/test/env/plain/VirtualenvPyEnvironmentProvider.kt +++ b/python/python-test-env/plain/src/com/intellij/python/test/env/plain/VirtualenvPyEnvironmentProvider.kt @@ -49,7 +49,7 @@ class VirtualenvPyEnvironmentProvider : PyEnvironmentProvider { createVenv(python.asBinToExec(), venvDir.asEelPath().toString(), inheritSitePackages).getOr { return it } diff --git a/python/services/system-python/src/com/intellij/python/community/services/systemPython/api.kt b/python/services/system-python/src/com/intellij/python/community/services/systemPython/api.kt index c1401f1655d1..5d8e2cf599af 100644 --- a/python/services/system-python/src/com/intellij/python/community/services/systemPython/api.kt +++ b/python/services/system-python/src/com/intellij/python/community/services/systemPython/api.kt @@ -154,5 +154,5 @@ suspend fun createVenvFromSystemPython( python: SystemPython, venvDir: Directory, inheritSitePackages: Boolean = false, - envReader: VirtualEnvReader = VirtualEnvReader.Instance, + envReader: VirtualEnvReader = VirtualEnvReader(), ): PyResult = createVenv(python.pythonBinary, venvDir, inheritSitePackages, envReader) \ No newline at end of file diff --git a/python/src/com/jetbrains/python/packaging/PyTargetEnvCreationManager.java b/python/src/com/jetbrains/python/packaging/PyTargetEnvCreationManager.java index eeb97dec2a98..d039326ded99 100644 --- a/python/src/com/jetbrains/python/packaging/PyTargetEnvCreationManager.java +++ b/python/src/com/jetbrains/python/packaging/PyTargetEnvCreationManager.java @@ -41,6 +41,7 @@ import com.jetbrains.python.sdk.PySdkExtKt; import com.jetbrains.python.sdk.PythonSdkType; import com.jetbrains.python.sdk.flavors.PythonSdkFlavor; import com.jetbrains.python.venvReader.VirtualEnvReader; +import com.jetbrains.python.venvReader.VirtualEnvReaderKt; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -108,7 +109,7 @@ public class PyTargetEnvCreationManager { // TODO [targets] Pass `parentDir = null` getPythonProcessResult(pythonExecution, false, true, targetEnvironmentRequest); - final Path binary = VirtualEnvReader.getInstance().findPythonInPythonRoot(Path.of(destinationDir)); + final Path binary = VirtualEnvReaderKt.VirtualEnvReader().findPythonInPythonRoot(Path.of(destinationDir)); final char separator = targetEnvironmentRequest.getTargetPlatform().getPlatform().fileSeparator; final String binaryFallback = destinationDir + separator + "bin" + separator + "python"; diff --git a/python/src/com/jetbrains/python/projectCreation/venvWithSdkCreator.kt b/python/src/com/jetbrains/python/projectCreation/venvWithSdkCreator.kt index 02cdb70f5fb9..30661e4644b7 100644 --- a/python/src/com/jetbrains/python/projectCreation/venvWithSdkCreator.kt +++ b/python/src/com/jetbrains/python/projectCreation/venvWithSdkCreator.kt @@ -103,7 +103,7 @@ suspend fun createVenvAndSdk( private suspend fun findExistingVenv( venvDirPath: Path, ): PythonBinary? = withContext(Dispatchers.IO) { - val pythonPath = VirtualEnvReader.Instance.findPythonInPythonRoot(venvDirPath) ?: return@withContext null + val pythonPath = VirtualEnvReader().findPythonInPythonRoot(venvDirPath) ?: return@withContext null val flavor = PythonSdkFlavor.tryDetectFlavorByLocalPath(pythonPath.toString()) if (flavor == null) { logger.warn("No flavor found for $pythonPath") diff --git a/python/src/com/jetbrains/python/sdk/PythonSdkType.java b/python/src/com/jetbrains/python/sdk/PythonSdkType.java index 3a8dd3e40e25..1b7745b37cd6 100644 --- a/python/src/com/jetbrains/python/sdk/PythonSdkType.java +++ b/python/src/com/jetbrains/python/sdk/PythonSdkType.java @@ -43,6 +43,7 @@ import com.jetbrains.python.target.PyDetectedSdkAdditionalData; import com.jetbrains.python.target.PyInterpreterVersionUtil; import com.jetbrains.python.target.PyTargetAwareAdditionalData; import com.jetbrains.python.venvReader.VirtualEnvReader; +import com.jetbrains.python.venvReader.VirtualEnvReaderKt; import kotlin.coroutines.Continuation; import kotlin.jvm.functions.Function2; import kotlinx.coroutines.CoroutineScope; @@ -144,7 +145,7 @@ public final class PythonSdkType extends SdkType { @RequiresBackgroundThread public @NotNull String adjustSelectedSdkHome(@NotNull String homePath) { try { - Path pythonPath = VirtualEnvReader.getInstance().findPythonInPythonRoot(Path.of(homePath)); + Path pythonPath = VirtualEnvReaderKt.VirtualEnvReader().findPythonInPythonRoot(Path.of(homePath)); return pythonPath != null ? pythonPath.toString() : homePath; } catch (InvalidPathException e) { @@ -193,7 +194,7 @@ public final class PythonSdkType extends SdkType { @Override public boolean isFileSelectable(@Nullable VirtualFile file) { if (file == null) return false; - Path pythonPath = VirtualEnvReader.getInstance().findPythonInPythonRoot(file.toNioPath()); + Path pythonPath = VirtualEnvReaderKt.VirtualEnvReader().findPythonInPythonRoot(file.toNioPath()); return pythonPath != null; } } diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddLocalInterpreterPresenter.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddLocalInterpreterPresenter.kt index 427a92b9e2a0..6253b723a0d8 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddLocalInterpreterPresenter.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddLocalInterpreterPresenter.kt @@ -26,7 +26,7 @@ import java.nio.file.Path */ class PythonAddLocalInterpreterPresenter( val moduleOrProject: ModuleOrProject, - val envReader: VirtualEnvReader = VirtualEnvReader.Instance, + val envReader: VirtualEnvReader = VirtualEnvReader(), val errorSink: ErrorSink, val bestGuessCreateSdkInfo: Deferred, ) { diff --git a/python/src/com/jetbrains/python/sdk/add/v2/sortForExistingEnvironment.kt b/python/src/com/jetbrains/python/sdk/add/v2/sortForExistingEnvironment.kt index 5d64fef39608..61d6db93bbc5 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/sortForExistingEnvironment.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/sortForExistingEnvironment.kt @@ -53,7 +53,7 @@ private enum class Group { suspend fun sortForExistingEnvironment( pythons: Collection>, module: Module?, - venvReader: VirtualEnvReader = VirtualEnvReader.Instance, + venvReader: VirtualEnvReader = VirtualEnvReader(), ): List> { val venvRoot = withContext(Dispatchers.IO) { venvReader.getVEnvRootDir() diff --git a/python/src/com/jetbrains/python/sdk/add/v2/uv/UvExistingEnvironmentSelector.kt b/python/src/com/jetbrains/python/sdk/add/v2/uv/UvExistingEnvironmentSelector.kt index 131cc3b7f2ca..9b68e71210b9 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/uv/UvExistingEnvironmentSelector.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/uv/UvExistingEnvironmentSelector.kt @@ -56,7 +56,7 @@ internal class UvExistingEnvironmentSelector

(model: PythonMutabl } val workingDirectory = - VirtualEnvReader.Instance.getVenvRootPath(selectedInterpreterPath.path) + VirtualEnvReader().getVenvRootPath(selectedInterpreterPath.path) ?: tryResolvePath(existingSdk?.associatedModulePath) ?: projectDir diff --git a/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java index f5daa5a7e9b1..d3c0812861cc 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java @@ -8,6 +8,7 @@ import com.intellij.openapi.util.UserDataHolder; import com.intellij.util.concurrency.annotations.RequiresBackgroundThread; import com.intellij.util.containers.ContainerUtil; import com.jetbrains.python.venvReader.VirtualEnvReader; +import com.jetbrains.python.venvReader.VirtualEnvReaderKt; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -81,6 +82,6 @@ public final class UnixPythonSdkFlavor extends CPythonSdkFlavor candidates) { - candidates.addAll(VirtualEnvReader.getInstance().findPyenvInterpreters()); + candidates.addAll(VirtualEnvReaderKt.VirtualEnvReader().findPyenvInterpreters()); } } diff --git a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java index 0d51c8b4e8b1..05b1c8d92447 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java @@ -13,6 +13,7 @@ import com.jetbrains.python.sdk.BasePySdkExtKt; import com.jetbrains.python.sdk.PySdkExtKt; import com.jetbrains.python.sdk.legacy.PythonSdkUtil; import com.jetbrains.python.venvReader.VirtualEnvReader; +import com.jetbrains.python.venvReader.VirtualEnvReaderKt; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -55,7 +56,7 @@ public final class VirtualEnvSdkFlavor extends CPythonSdkFlavor { val pipEnv = setupPipEnv(moduleBasePath, basePythonBinaryPath, installPackages).getOr { return it } val pipEnvExecutablePathString = withContext(Dispatchers.IO) { - VirtualEnvReader.Instance.findPythonInPythonRoot(Path.of(pipEnv))?.toString() + VirtualEnvReader().findPythonInPythonRoot(Path.of(pipEnv))?.toString() } ?: return PyResult.localizedError(PyBundle.message("python.sdk.provided.path.is.invalid", pipEnv)) return PyResult.success(Path.of(pipEnvExecutablePathString)) } diff --git a/python/src/com/jetbrains/python/sdk/poetry/PoetryCommandExecutor.kt b/python/src/com/jetbrains/python/sdk/poetry/PoetryCommandExecutor.kt index 6f7b45fab2f6..d0660a2b482a 100644 --- a/python/src/com/jetbrains/python/sdk/poetry/PoetryCommandExecutor.kt +++ b/python/src/com/jetbrains/python/sdk/poetry/PoetryCommandExecutor.kt @@ -124,7 +124,7 @@ internal suspend fun getPoetryVersion(): String? = @Internal suspend fun getPythonExecutable(homePath: String): String = withContext(Dispatchers.IO) { - VirtualEnvReader.Instance.findPythonInPythonRoot(Path.of(homePath))?.toString() ?: FileUtil.join(homePath, "bin", "python") + VirtualEnvReader().findPythonInPythonRoot(Path.of(homePath))?.toString() ?: FileUtil.join(homePath, "bin", "python") } /** diff --git a/python/src/com/jetbrains/python/sdk/uv/impl/UvLowLevel.kt b/python/src/com/jetbrains/python/sdk/uv/impl/UvLowLevel.kt index 790d0afdc37e..bfb7d6ae7ef9 100644 --- a/python/src/com/jetbrains/python/sdk/uv/impl/UvLowLevel.kt +++ b/python/src/com/jetbrains/python/sdk/uv/impl/UvLowLevel.kt @@ -66,7 +66,7 @@ private class UvLowLevelImpl(val cwd: Path, private val uvCli: UvCli) : UvLowLev .getOr { return it } } - val path = VirtualEnvReader.Instance.findPythonInPythonRoot(cwd.resolve(VirtualEnvReader.DEFAULT_VIRTUALENV_DIRNAME)) + val path = VirtualEnvReader().findPythonInPythonRoot(cwd.resolve(VirtualEnvReader.DEFAULT_VIRTUALENV_DIRNAME)) if (path == null) { return PyResult.localizedError(PyBundle.message("python.sdk.uv.failed.to.initialize.uv.environment")) } diff --git a/python/src/com/jetbrains/python/statistics/PyStatisticTools.kt b/python/src/com/jetbrains/python/statistics/PyStatisticTools.kt index 240b94133240..a89561ccd8dc 100644 --- a/python/src/com/jetbrains/python/statistics/PyStatisticTools.kt +++ b/python/src/com/jetbrains/python/statistics/PyStatisticTools.kt @@ -161,7 +161,7 @@ val Sdk.interpreterType: InterpreterType isPoetry -> POETRY isHatch -> HATCH this.isCondaVirtualEnv || this.sdkAdditionalData.asSafely()?.flavor is CondaEnvSdkFlavor -> CONDAVENV - VirtualEnvReader.Instance.isPyenvSdk(getHomePath()) -> PYENV + VirtualEnvReader().isPyenvSdk(getHomePath()) -> PYENV this.isVirtualEnv -> VIRTUALENV else -> REGULAR } diff --git a/python/testFramework/src/com/jetbrains/python/tools/Utils.kt b/python/testFramework/src/com/jetbrains/python/tools/Utils.kt index 77e341b23e82..6763e63f43bd 100644 --- a/python/testFramework/src/com/jetbrains/python/tools/Utils.kt +++ b/python/testFramework/src/com/jetbrains/python/tools/Utils.kt @@ -32,7 +32,7 @@ fun createSdkForPerformance(module: Module, sdkHome: String = File(TestPath, "envs/py36_64").absolutePath): Sdk { ApplicationManagerEx.setInStressTest(true) // To disable slow debugging - val executable = VirtualEnvReader.Instance.findPythonInPythonRoot(Path(sdkHome))?.toFile() ?: throw AssertionError("No python on $sdkHome") + val executable = VirtualEnvReader().findPythonInPythonRoot(Path(sdkHome))?.toFile() ?: throw AssertionError("No python on $sdkHome") println("Creating Python SDK $sdkHome") return PySdkTools.createTempSdk(VfsUtil.findFileByIoFile(executable, true)!!, sdkCreationType, module, PyPackagingSettings.getInstance(module.project)) diff --git a/python/testSrc/com/jetbrains/python/sdk/PySdkSettingsTest.kt b/python/testSrc/com/jetbrains/python/sdk/PySdkSettingsTest.kt index 0e7bc06d8e82..f3473330ab09 100644 --- a/python/testSrc/com/jetbrains/python/sdk/PySdkSettingsTest.kt +++ b/python/testSrc/com/jetbrains/python/sdk/PySdkSettingsTest.kt @@ -9,7 +9,7 @@ class PySdkSettingsTest { fun testPreferredVirtualEnvBasePath() { val settings = PySdkSettings() - val defaultVenvDir = VirtualEnvReader.Instance.getVEnvRootDir().absolutePathString() + val defaultVenvDir = VirtualEnvReader().getVEnvRootDir().absolutePathString() var preferredPath = settings.getPreferredVirtualEnvBasePath(null) Assert.assertEquals(defaultVenvDir, preferredPath) diff --git a/python/tools/src/com/jetbrains/python/tools/BuildZippedSkeletons.kt b/python/tools/src/com/jetbrains/python/tools/BuildZippedSkeletons.kt index 131a76e30e67..f6d3f162a119 100644 --- a/python/tools/src/com/jetbrains/python/tools/BuildZippedSkeletons.kt +++ b/python/tools/src/com/jetbrains/python/tools/BuildZippedSkeletons.kt @@ -30,7 +30,7 @@ fun main() { for (python in File(root).listFiles()!!) { println("Running on $python") - val executable = VirtualEnvReader.Instance.findPythonInPythonRoot(Path(python.absolutePath))!!.toString() + val executable = VirtualEnvReader().findPythonInPythonRoot(Path(python.absolutePath))!!.toString() val sdk = PySdkTools.createTempSdk(VfsUtil.findFileByIoFile(File(executable), true)!!, SdkCreationType.SDK_PACKAGES_ONLY, null, null) val skeletonsDir = File(workingDir, "skeletons-${sdk.versionString!!.replace(" ", "_")}_" + abs(sdk.homePath!!.hashCode())) diff --git a/python/tools/src/com/jetbrains/python/tools/PackPythonSdkLibsForStubs.kt b/python/tools/src/com/jetbrains/python/tools/PackPythonSdkLibsForStubs.kt index 1106b68448d0..9c78b29cd238 100644 --- a/python/tools/src/com/jetbrains/python/tools/PackPythonSdkLibsForStubs.kt +++ b/python/tools/src/com/jetbrains/python/tools/PackPythonSdkLibsForStubs.kt @@ -22,7 +22,7 @@ fun main() { } val sdkHome = python.absolutePath - val executable = VirtualEnvReader.Instance.findPythonInPythonRoot(Path(sdkHome))?.toFile() + val executable = VirtualEnvReader().findPythonInPythonRoot(Path(sdkHome))?.toFile() if (executable == null) { println("No python on $sdkHome")