diff --git a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java index b7d17c74cfaa..fd2852e5619f 100644 --- a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java +++ b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java @@ -55,6 +55,7 @@ public final class IpnbConnectionManager implements ProjectComponent { private final Project myProject; private Map myKernels = new HashMap(); private Map myUpdateMap = new HashMap(); + public IpnbConnectionManager(final Project project) { myProject = project; } @@ -191,7 +192,8 @@ public final class IpnbConnectionManager implements ProjectComponent { } catch (URISyntaxException e) { if (showNotification) { - showWarning(codePanel.getFileEditor(), "Please, check IPython Notebook URL in Settings->Tools->IPython Notebook", + showWarning(codePanel.getFileEditor(), + "Please, check IPython Notebook URL in Settings->Tools->IPython Notebook", new IpnbSettingsAdapter()); LOG.warn("IPython Notebook connection refused: " + e.getMessage()); } @@ -271,8 +273,8 @@ public final class IpnbConnectionManager implements ProjectComponent { new IpnbSettingsAdapter()); return false; } - final String ipython = PythonHelpersLocator.getHelperPath("pycharm/pycharm_load_entry_point.py"); - final ArrayList parameters = Lists.newArrayList(sdk.getHomePath(), ipython, "notebook", "--no-browser"); + + final ArrayList parameters = Lists.newArrayList("notebook", "--no-browser"); if (hostPort.getFirst() != null) { parameters.add("--ip"); parameters.add(hostPort.getFirst()); @@ -281,8 +283,11 @@ public final class IpnbConnectionManager implements ProjectComponent { parameters.add("--port"); parameters.add(hostPort.getSecond()); } - final GeneralCommandLine commandLine = new GeneralCommandLine(parameters).withWorkDirectory(myProject.getBasePath()). - withEnvironment(env); + + final GeneralCommandLine commandLine = PythonHelpersLocator.LOAD_ENTRY_POINT + .newCommandLine(sdk.getHomePath(), parameters) + .withWorkDirectory(myProject.getBasePath()). + withEnvironment(env); try { final KillableColoredProcessHandler processHandler = new KillableColoredProcessHandler(commandLine) { @@ -343,7 +348,8 @@ public final class IpnbConnectionManager implements ProjectComponent { } } - public void projectOpened() {} + public void projectOpened() { + } public void projectClosed() { diff --git a/python/src/com/jetbrains/python/PythonHelper.java b/python/src/com/jetbrains/python/PythonHelper.java index 9f27590b3675..0fe2f27ba347 100644 --- a/python/src/com/jetbrains/python/PythonHelper.java +++ b/python/src/com/jetbrains/python/PythonHelper.java @@ -19,6 +19,7 @@ import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.configurations.ParamsGroup; import org.jetbrains.annotations.NotNull; +import java.util.List; import java.util.Map; /** @@ -32,4 +33,6 @@ public interface PythonHelper { void addToGroup(@NotNull ParamsGroup group, @NotNull GeneralCommandLine cmd); String asParamString(); + + GeneralCommandLine newCommandLine(String sdkPath, List parameters); } diff --git a/python/src/com/jetbrains/python/PythonHelpersLocator.java b/python/src/com/jetbrains/python/PythonHelpersLocator.java index a75d90f6c0bb..fe4b804215dc 100644 --- a/python/src/com/jetbrains/python/PythonHelpersLocator.java +++ b/python/src/com/jetbrains/python/PythonHelpersLocator.java @@ -15,6 +15,7 @@ */ package com.jetbrains.python; +import com.google.common.collect.Lists; import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.configurations.ParamsGroup; import com.intellij.openapi.application.PathManager; @@ -26,6 +27,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import java.io.File; +import java.util.List; import java.util.Map; public enum PythonHelpersLocator implements PythonHelper { @@ -35,6 +37,8 @@ public enum PythonHelpersLocator implements PythonHelper { RUN_IN_CONSOLE("pydev", "pydev_run_in_console"), PROFILER("profiler", "run_profiler"), + LOAD_ENTRY_POINT("pycharm", "pycharm_load_entry_point"), + // Test runners UT("pycharm", "utrunner"), SETUPPY("pycharm", "pycharm_setup_runner"), @@ -151,6 +155,17 @@ public enum PythonHelpersLocator implements PythonHelper { public String asParamString() { return FileUtil.toSystemDependentName(myPath.getAbsolutePath()); } + + @Override + public GeneralCommandLine newCommandLine(String sdkPath, List parameters) { + List args = Lists.newArrayList(); + args.add(sdkPath); + args.add(asParamString()); + args.addAll(parameters); + GeneralCommandLine cmd = new GeneralCommandLine(args); + addToPythonPath(cmd.getEnvironment()); + return cmd; + } } /** @@ -218,4 +233,9 @@ public enum PythonHelpersLocator implements PythonHelper { public String asParamString() { return myModule.asParamString(); } + + @Override + public GeneralCommandLine newCommandLine(String sdkPath, List parameters) { + return myModule.newCommandLine(sdkPath, parameters); + } }