为什么SublimeREPL无法导入Python模块或读取CWD中的文件?

发布于 2021-01-29 15:01:46

我使用的是 崇高的文本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'
关注者
0
被浏览
86
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您是否调查了打开 SublimeREPL:Python 的文件/面板与的输出之间是否存在关系print os.getcwd()?SublimeREPL在REPL启动时初始化其cwd。cwd将在REPL的整个生命周期内保持不变。

    如您所指出的, SublimeREPL:Python 的默认cwd是:

    "cwd": "$file_path"
    

    这意味着将光标放在空白的Sublime面板中启动 SublimeREPL:Python
    ,结果/opt/sublime_text/为cwd。这可能被认为是不希望的并且令人困惑。

    但是,如果在光标位于要运行的.py文件中时启动 SublimeREPL:Python ,则REPL将使用 当前.py文件的文件夹 作为其cwd。

    我个人认为这是理想的行为,但是您必须先了解它,然后才能变得方便。

    如果将cwd的设置更改为:

    "cwd": "$folder",
    

    对于不使用sublime-projects的情况,上述行为保持不变。当您确实使用sublime-project时,python REPL
    cwd将成为主项目文件夹,而与REPL启动时的光标位置无关。如果您有python驱动的项目,则这可能是所需的行为。但是,如果您只是在较大的项目中使用某些python脚本,则可能不希望主项目文件夹成为python
    REPL中的cwd。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看