SublimeREPL and IPython

2019-02-20 02:36发布

问题:

I fail when I tried to use IPython with SublimeREPL.

My setup is:

- Windows 8.1
- Sublime Text 3
- C:\Python34
- C:\Python27
- C:\Anaconda3\Scripts -> Here it's where Ipython is

My PYTHONPATH and PATH are correct and I wrote in SublimeREPL settings - User:

{
    "default_extend_env": {"PATH": "{PATH};C\\Anaconda3\\Scripts"}
}

回答1:

It's solved. I make a file named Main.sublime-menu within the folder Sublime Text 3\Packages\User\SublimeREPL\config\Python

[
{
    "id": "tools",
    "children":
    [{
        "caption": "SublimeREPL",
        "mnemonic": "r",
        "id": "SublimeREPL",
        "children":
        [
            {
                "caption": "Python",
                "id": "Python",

                "children":[
                    {
                        "command": "repl_open",
                        "caption": "IPython - Anaconda",
                        "id": "repl_python_ipython",
                        "mnemonic": "p",
                        "args": {
                            "type": "subprocess",
                            "encoding": "utf8",
                            "autocomplete_server": true,
                            "cmd": ["C:/Anaconda3/Scripts/ipython", "--colors=NoColor"],
                            "cwd": "$file_path",
                            "syntax": "Packages/Python/Python.tmLanguage",
                            "external_id": "python"

                        }
                    }
                ]
            }
        ]
    }]
}
]


回答2:

SublimeREPL doesn't run ipython executable directly - it uses its API to start the console, therefore IPython needs to be importable, what means it needs to be on PYTHONPATH. So, extend default_extend_env config with PYTHONPATH pointing it to IPython source folder.



回答3:

There are 2 ways to make it, win10, conda python3.6.7, Ipython7.1.1, Sublime 3.1.1

1.Open \Packages\SublimeREPL\config\Python\Main.sublime-menu, find the line

"windows": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"]

and change it to where your ipython.exe located, for me is

"windows": ["C:\\Python\\envs\\py37\\Scripts\\ipython.exe"]

2.Just modified \Packages\SublimeREPL\config\Python\ipy_repl.py to 3 lines,

import os
# change dir to path_to_ipython.exe
os.chdir(r'C:\Python\envs\py37\Scripts')
os.system('ipython')

I prefer the second one, if you encount problems with first way, such as your shortcut about sublimeREPL not work (happens to me:(), try second one.