我使用的是 崇高的文本3 生成3126对 Ubuntu的灿烂 与 SublimeREPL 插件。
我使用 CTRL + SHIFT + P >> SublimeREPL 打开Python REPL :Python, 并使用 CTRL +,F 和everything将文件发送到REPL,只要我使用单个Python脚本文件即可。一旦我尝试将代码的某些部分移至另一个模块并将其导入主文件中,就会收到讨厌的 ImportError:没有名为 error的 模块 。
尝试使用以下命令打开位于同一目录中的文本文件:
codecs.open('filename', encoding='utf-8')
结果是:
IOError: [Errno 2] No such file or directory: 'filename'
您是否调查了打开 SublimeREPL:Python 的文件/面板与的输出之间是否存在关系print os.getcwd()?SublimeREPL在REPL启动时初始化其cwd。cwd将在REPL的整个生命周期内保持不变。
print os.getcwd()
如您所指出的, SublimeREPL:Python 的默认cwd是:
"cwd": "$file_path"
这意味着将光标放在空白的Sublime面板中启动 SublimeREPL:Python ,结果/opt/sublime_text/为cwd。这可能被认为是不希望的并且令人困惑。
/opt/sublime_text/
但是,如果在光标位于要运行的.py文件中时启动 SublimeREPL:Python ,则REPL将使用 当前.py文件的文件夹 作为其cwd。
我个人认为这是理想的行为,但是您必须先了解它,然后才能变得方便。
如果将cwd的设置更改为:
"cwd": "$folder",
对于不使用sublime-projects的情况,上述行为保持不变。当您确实使用sublime-project时,python REPL cwd将成为主项目文件夹,而与REPL启动时的光标位置无关。如果您有python驱动的项目,则这可能是所需的行为。但是,如果您只是在较大的项目中使用某些python脚本,则可能不希望主项目文件夹成为python REPL中的cwd。