[python] use legacy virtualenv helper for pythons 3.6 & 3.7 (PY-81174)

GitOrigin-RevId: 66c432067aa012b451cedf134f019e783945f1c5
This commit is contained in:
Vitaly Legchilkin
2025-06-04 12:00:17 +02:00
committed by intellij-monorepo-bot
parent 4627060d7e
commit 532bcaa795
3 changed files with 8 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ import com.intellij.python.community.execService.WhatToExec
import com.jetbrains.python.PythonBinary
import com.jetbrains.python.Result
import com.jetbrains.python.errorProcessing.PyResult
import com.jetbrains.python.psi.LanguageLevel
import com.jetbrains.python.sdk.PySdkSettings
import com.jetbrains.python.sdk.flavors.PythonSdkFlavor
import com.jetbrains.python.validatePythonAndGetVersion
@@ -44,7 +45,7 @@ suspend fun createVenv(
add(venvDir.pathString)
}
val version = python.validatePythonAndGetVersion().getOr { return it }
val helper = if (version.isPy3K) VIRTUALENV_ZIPAPP_NAME else PY_2_VIRTUALENV_ZIPAPP_NAME
val helper = if (version.isAtLeast(LanguageLevel.PYTHON38)) VIRTUALENV_ZIPAPP_NAME else LEGACY_VIRTUALENV_ZIPAPP_NAME
execService.execGetStdout(WhatToExec.Helper(python, helper = helper), args, ExecOptions(timeout = 3.minutes)).getOr { return it }
@@ -65,5 +66,6 @@ suspend fun createVenv(
@Internal
const val VIRTUALENV_ZIPAPP_NAME: HelperName = "virtualenv-py3.pyz"
// Ancient version, the last one compatible with Py2
private const val PY_2_VIRTUALENV_ZIPAPP_NAME = "virtualenv-20.13.0.pyz"
// Ancient version, the last one compatible with Py 2.7, 3.6, 3.7
@Internal
const val LEGACY_VIRTUALENV_ZIPAPP_NAME: HelperName = "virtualenv-20.13.0.pyz"

View File

@@ -16,6 +16,7 @@ import java.nio.file.Path;
import java.util.*;
import java.util.stream.Collectors;
import static com.intellij.python.community.impl.venv.VenvKt.LEGACY_VIRTUALENV_ZIPAPP_NAME;
import static com.intellij.python.community.impl.venv.VenvKt.VIRTUALENV_ZIPAPP_NAME;
import static com.jetbrains.python.PythonHelpersLocator.*;
@@ -26,7 +27,7 @@ public enum PythonHelper implements HelperPackage {
// Packaging tools
PACKAGING_TOOL("packaging_tool.py"),
VIRTUALENV_ZIPAPP(VIRTUALENV_ZIPAPP_NAME),
LEGACY_VIRTUALENV_ZIPAPP("virtualenv-20.13.0.pyz"), // virtualenv used to create virtual environments for python 2.7 & 3.6
LEGACY_VIRTUALENV_ZIPAPP(LEGACY_VIRTUALENV_ZIPAPP_NAME), // virtualenv used to create virtual environments for python 2.7, 3.6, 3.7
COVERAGEPY_OLD("coveragepy_old", ""),
COVERAGEPY_NEW("coveragepy_new", ""),

View File

@@ -33,6 +33,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import static com.intellij.python.community.impl.venv.VenvKt.LEGACY_VIRTUALENV_ZIPAPP_NAME;
import static com.intellij.python.community.impl.venv.VenvKt.VIRTUALENV_ZIPAPP_NAME;
import static com.jetbrains.python.sdk.PySdkExtKt.showSdkExecutionException;
@@ -41,9 +42,6 @@ import static com.jetbrains.python.sdk.PySdkExtKt.showSdkExecutionException;
*/
@Deprecated(forRemoval = true)
public class PyPackageManagerImpl extends PyPackageManagerImplBase {
private static final String LEGACY_VIRTUALENV_ZIPAPP_NAME = "virtualenv-20.13.0.pyz";
// virtualenv used to create virtual environments for python 2.7 & 3.6
private static final Logger LOG = Logger.getInstance(PyPackageManagerImpl.class);
@Override