【问题标题】:Python 3 is not working with Sublime Text 2Python 3 不适用于 Sublime Text 2
【发布时间】:2012-10-24 22:53:08
【问题描述】:

我已经使用 Sublime Text 2 一年多了,最近开始将它用于 Python。 Sublime 为我尝试使用的 Python 构建了它(内置的用于 2.7.3 或我相信的 2.X)。我正在使用 Python 3.3.0。我已经编辑了 sublime-build 文件并将其更改为:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}

正如另一个线程上的 stackoverflow 所建议的那样。我尝试重新启动 sublime 并尝试运行我的代码:

x = input("Name: ")
print("Welcome " + x)
input()

但是在底部的控制台上,当我使用 build (Ctrl+B) 运行时出现以下错误:

Name: Traceback (most recent call last):
File "/home/andrew/grive/Documents/RandomProjects/PythonStuff/HelloWorld.py", line 32,      
in <module>
x = input("Name: ")
EOFError: EOF when reading a line
[Finished in 0.1s with exit code 1]

另外,我试图通过仅使用 SublimeREPL 和其中的 Python 函数来绕过内置的构建函数,但它们也检测到我的 Python 构建为 2.7.3,因此没有编译我的 3.3.0 代码。请注意,我确实安装了 Python 3,我使用的是 Ubuntu,当我在终端中键入“python3”时,Python 会在终端中以正确的版本启动。

所以我有两个问题:

为什么我的 python3.sublime-build 不工作,我该如何解决?

由于我是一个 linux 菜鸟,我无法访问构建文件。我去过他们一次,但我现在忘记了。它们在 /home/~.config/sublime-text-2/ 等等等等。

我看不到 .config 文件,您能否解释一下这是如何工作的?

【问题讨论】:

    标签: python ubuntu python-3.x text-editor sublimetext2


    【解决方案1】:

    您的问题是 sublimetext 构建无法接受用户输入 - 没有连接输入流。您的 Python 版本无关紧要。

    不过,write a plugin 可以接受输入!


    至于配置文件,只需使用“首选项->浏览包”菜单项即可。

    【讨论】:

    • 啊,谢谢,这很有道理,所以只是一般提示,如果我使用 Sublime,我应该使用命令行来执行我的 Python 代码吗?我认为这将是测试它的最简单方法,因为通过 IDLE 运行可能不太方便。
    • @Andy093:我给自己写了一个插件来做你想做的事。这有点麻烦,但它对我有用。查看我的编辑
    【解决方案2】:

    我发现了将'Python.sublime-build'文件从'python'编辑为'python3'函数的OP解决方案。

    我知道这一点,因为当我遇到同样的问题时,OP 的解决方案对我有帮助,并且证明如下:

    import sys
    print(sys.platform)
    

    整个练习代码:

    import sys
    print(sys.platform)
    print(2 ** 100)
    x = 'Spam!'
    print(x * 8)
    input('Press ENTER to exit...')
    

    在 Python 2.7 中,返回的是 'linux2'(对我来说)。 在 Python 3.3 中,返回的是 'linux'。 这是我首先使用 PVM 检测到的。 当我在 Sublime 2 中进行“构建”时,“linux2”是输出;使用 OP 的方法将输出更改为“linux”,所以我认为这是正确的做法(无论如何最简单)。

    使用 Python 构建输出:

    linux2
    1267650600228229401496703205376
    Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
    Press ENTER to exit...Traceback (most recent call last):
      File "/home/sick/Python/script1.py", line 6, in <module>
        input('Press ENTER to exit...')
    EOFError: EOF when reading a line
    [Finished in 0.0s with exit code 1]
    

    使用 Python3 构建输出:

    linux
    1267650600228229401496703205376
    Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
    Press ENTER to exit...Traceback (most recent call last):
      File "/home/sick/Python/script1.py", line 6, in <module>
        input('Press ENTER to exit...')
    EOFError: EOF when reading a line
    [Finished in 0.1s with exit code 1]
    

    没有程序错误;它给出了一个错误,因为程序正在等待用户输入(据我所知,但我只在第 4 章)。

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,只有当我使用终端启动这个程序时才能这样做:

       cd WayToFile
       python FileName
      

      一切都完成了。也许这就是它必须在所有 Python 版本中工作的方式

      【讨论】:

        猜你喜欢
        • 2016-01-05
        • 1970-01-01
        • 2017-03-31
        • 2015-04-16
        • 2015-04-24
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多