Sublime Text不会执行所有Python代码行

时间:2018-04-22 23:29:25

标签: python sublimetext3

使用未注册版本的Sublime Text(就是这个问题)?

当我运行以下代码时,它会提示我输入我的名字,我输入并点击回车,然后没有任何反应:

dict_1 = []
count = 0

while count < 3:
    fn = input('What is your first name:')
    ln = input('What is your last name:')
    dict_1.append({
        "first_name": fn,
        "last_name": ln
        })
    count += 1

print(dict_1)

然而,当我在PyCharm中运行完全相同的代码时,它会根据循环提示输入名字和名字3次,然后输出结果字典。

我更喜欢Sublime Text到Pycharm(不太臃肿)但是如果它不执行所有代码那么它可能对我不起作用。

有什么想法吗? Sublime Text中是否有一些设置我缺少?

2 个答案:

答案 0 :(得分:3)

Sublime Text&#34; Build results&#34; pannel(界面的底部):

enter image description here

不是交互式的,你不能在那里输入输入。

为了解决这个问题,除了标准的 CTRL + B 构建快捷方式之外,我还添加了另一个快捷方式(在菜单首选项&gt;键绑定中 - 用户):

{ "keys": ["ctrl+shift+alt+b"], "command": "python_run" }

允许在新的终端窗口中使用Python 启动当前文件(在那里,您可以输入一些数据)。

以下是python_run.py文件(要在C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User中复制):

import sublime
import sublime_plugin
import subprocess

class PythonRunCommand(sublime_plugin.WindowCommand):
    def run(self):
        command = 'cmd /k "C:\Python27\python.exe" %s' % sublime.active_window().active_view().file_name()
        subprocess.Popen(command)

答案 1 :(得分:0)

正如其他人所指出的,Sublime的控制台不支持输入。如果要运行需要标准输入输入的程序。您可以在GUI终端中运行它。你可以为python修改Sublime的内置build system并为Python添加一个变种。

  1. 为了修改内置的python构建系统。您需要安装包PackageResourceViewer。按照那里的指南进行安装。
  2. 安装PackageResourceViewer后,使用 Shift + Ctrl + P 打开包控制面板。然后输入prv,然后选择Open Resourceenter image description here
  3. 然后输入python,并选择结果列表中的第一项。
  4. enter image description here

    1. 在弹出式面板中,选择Python.sublime-buildenter image description here
    2. 在打开的文件中,使用以下设置:

      {
          "shell_cmd": "python -u \"$file\"",
          "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
          "selector": "source.python",
      
          "env": {"PYTHONIOENCODING": "utf-8"},
      
          "variants":
          [
              {
                  "name": "Syntax Check",
                  "shell_cmd": "python -m py_compile \"${file}\"",
              },
      
              {
                  "name": "Run in console",
      
                  "windows":{
                      "shell_cmd": "start cmd /k python -u \"$file\""
                  },
                  "linux":{
                      "shell_cmd": "xterm -hold -e python -u \"$file\""
                  },
                   "osx":{
                      "shell_cmd": "xterm -hold -e python -u \"$file\""
                  }
      
              }
          ]
      }