From e12ccbc98c4743fe47fafcede325db7441fdeadc Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 18 Nov 2010 21:12:22 +0300 Subject: [PATCH] add to PYTHONPATH only the paths added by the user, not all paths of Python interpreter (in particular, skeletons must never be on PYTHONPATH) --- .../python/run/PythonCommandLineState.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/python/src/com/jetbrains/python/run/PythonCommandLineState.java b/python/src/com/jetbrains/python/run/PythonCommandLineState.java index b5f7f3438831..40bd114b0615 100644 --- a/python/src/com/jetbrains/python/run/PythonCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonCommandLineState.java @@ -21,19 +21,21 @@ import com.intellij.execution.ui.ConsoleView; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.projectRoots.SdkAdditionalData; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.HashMap; import com.jetbrains.python.console.PyDebugConsoleBuilder; import com.jetbrains.python.debugger.PyDebugRunner; import com.jetbrains.python.sdk.PythonEnvUtil; +import com.jetbrains.python.sdk.PythonSdkAdditionalData; import com.jetbrains.python.sdk.PythonSdkFlavor; import com.jetbrains.python.sdk.PythonSdkType; import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author Leonid Shalupov @@ -191,10 +193,13 @@ public abstract class PythonCommandLineState extends CommandLineState { Sdk pythonSdk = PythonSdkType.findSdkByPath(myConfig.getSdkHome()); if (pythonSdk != null) { - VirtualFile[] paths = pythonSdk.getRootProvider().getFiles(OrderRootType.CLASSES); List pathList = Lists.newArrayList(); - for (VirtualFile file : paths) { - pathList.add(FileUtil.toSystemDependentName(file.getPath())); + final SdkAdditionalData sdkAdditionalData = pythonSdk.getSdkAdditionalData(); + if (sdkAdditionalData instanceof PythonSdkAdditionalData) { + final Set addedPaths = ((PythonSdkAdditionalData)sdkAdditionalData).getAddedPaths(); + for (VirtualFile file : addedPaths) { + pathList.add(FileUtil.toSystemDependentName(file.getPath())); + } } PythonSdkFlavor.initPythonPath(envs, passParentEnvs, pathList); }