前言:
Sublime Text运行python程序时不支持input输入,因此无法对其进行调试。遂安装SublimeREPL插件(插件的安装方法网上很多,这里不再赘述),然而安装完成后发现其只能运行系统上自带的python2.7程序,无法运行根据Virtualenv安装的Tensorflow程序,原因为:运行根据Virtualenv安装的Tensorflow程序时,需要先对其进行激活(如何配置可以参考:(MAC)Sublime Text下配置根据Virtualenv安装的Tensorflow)。
PS:这篇文章是(MAC)Sublime Text下配置根据Virtualenv安装的Tensorflow的后续工作。
问题描述:
如何利用SublimeREPL插件运行根据Virtualenv安装的Tensorflow程序,以便于进行调试(因为此插件运行程序后支持input,从而可以进行调试)。
解决方案:
在网上搜索了很久,没有发现完全对口的解决方案,然后参考了一篇类似的文章,该文章解决了SublimeREPL配置Python3开发的问题。其虽没有对口地解决我的问题,然而却极具参考价值。
现具体阐述我的解决方案:
打开Sublime Text,点击Sublime Text->Preferences->Browse Packages...,进入SublimeREPL/config文件夹内,在这里新建一个Python-Tensorflow文件夹,将python中的所有文件(Default.sublime-commands, ipy_repl.py, Main.sublime-menu)拷贝进来,然后对其进行修改(ipy_repl.py无需修改)。
修改Default.sublime-commands,将下面的代码直接复制粘贴进去,覆盖原始代码。
[
{
"caption": "SublimeREPL: Python-Tensorflow",
"command": "run_existing_window_command", "args":
{
"id": "Python-Tensorflow",
"file": "config/Python-Tensorflow/Main.sublime-menu"
}
}
]
- 修改Main.sublime-menu,将下面的代码直接复制粘贴进去,覆盖原始代码。
[
{
"id": "tools",
"children":
[{
"caption": "SublimeREPL",
"mnemonic": "R",
"id": "SublimeREPL",
"children":
[
{"caption": "Python-Tensorflow",
"id": "Python-Tensorflow",
"command": "repl_open",
"mnemonic": "R",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["/Users/XXX/Documents/MyShell/pyenv.sh", "$file_basename"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
}
]
}]
}
]
根据具体情况修改上述代码中下面的语句:
"cmd": ["/Users/XXX/Documents/MyShell/pyenv.sh", "$file_basename"],
其中,/Users/XXX/Documents/MyShell/pyenv.sh是我的脚本文件,该文件的具体作用和代码请参见(MAC)Sublime Text下配置根据Virtualenv安装的Tensorflow。
-
保存后打开Sublime Text,点击Tools->SublimeREPL,此时应该会在弹出的一侧出现Python-Tensorflow,然后点击它便可运行相关程序。
为Python-Tensorflow设置快捷键,打开Sublime Text,点击Sublime Text->Preferences->key Bindings,在Default(OSX).sublime-keymap-User中添加以下语句:
[{
"keys":["option+b"],
"caption": "SublimeREPL: Python-Tensorflow",
"command": "run_existing_window_command", "args":
{
"id": "Python-Tensorflow",
"file": "config/Python-Tensorflow/Main.sublime-menu"
}
}]
其中,"keys"后面的快捷键,可以根据个人喜好来进行设置。