Como executo código Python a partir do Sublime Text 2?

309

Quero configurar um IDE Python completo no Sublime Text 2.

Eu quero saber como executar o código Python de dentro do editor. É feito usando o sistema de compilação? Como eu faço isso ?

neo
fonte

Respostas:

372

Ferramentas -> Construir Sistema -> (escolha) Python e depois:

Para correr:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Isso iniciaria seu arquivo no console, que deve estar na parte inferior do editor.

Parar:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Você pode descobrir onde sua Breakchave está aqui: http://en.wikipedia.org/wiki/Break_key .

Nota: CTRL + Cse não funcionar.

O que fazer quando Ctrl + Breaknão funciona:

Vamos para:

Preferências -> Vinculações de teclas - Usuário

e cole a linha abaixo:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

Agora, você pode usar em ctrl+shift+cvez deCTRL+BREAK

matiit
fonte
9
O texto sublime também pode "detectar automaticamente" o idioma. Por isso funcionou para mim apenas CTRL + B
Alexis
4
Certifique-se pythonestá em suas PATH... O Windows Installer não parecem fazer isso automagicamente
SeanJA
2
como você para de executar o programa (python)?
Ib33X
3
Chave olha para quebra do meu teclado, como "Pause / Break", por assim processo de parada eu também acrescentou{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
gelada
3
Ter a linha {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }em Ligações de teclas do usuário e usar ctrl+shift+cimpressões que são a compilação [Cancelled]enquanto o programa ainda está sendo executado.
Devi
56

No Mac OS X, salve seu arquivo com uma extensão .py. Pressione + B. É executado em uma janela abaixo.

insira a descrição da imagem aqui

bobobobo
fonte
55

Edite% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Alterar conteúdo para:

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

altere a parte "c: \ python27" para qualquer versão do python que você possui no seu sistema.

ppy
fonte
3
Preste atenção à barra dupla no caminho, o Sublime não reconhecerá o contrário!
Enrico
6
Barra única também funciona no lugar da dupla barra invertida no Windows: "C: /Python27/python.exe" (à la Linux e OSX)
Dylan Hogg
7
Para mim, o caminho era% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Parece que não vejo a pasta Python no Sublime Text 3
HoKy22
44

Para executar, pressione CtrlB(responder por matiit )

Mas quando CtrlB não funciona , o Texto Sublime provavelmente não consegue encontrar o Intérprete Python. Ao tentar executar seu programa, consulte o log e encontre a referência ao Python no caminho.

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

O ponto é que ele tenta executar o python via linha de comando, o cmd se parece com:

python -u C:\scripts\test.py

Se você não pode executar python a partir do cmd, o Sublime Text também não pode.
(Tente você mesmo no cmd, digite python e execute-o, a linha de comando do python deve aparecer)

SOLUÇÃO

Você pode alterar a fórmula de criação de Texto Sublime ou o Sistema %PATH%.

  • Para definir o seu %PATH%:
    * Você precisará reiniciar seu editor para carregar novos%PATH%

    • Execute a linha de comando * e insira este comando: * precisa ser executado como administrador
      SETX /M PATH "%PATH%;<python_folder>"
      por exemplo:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • OU manualmente: (preferível)
      Adicione ;C:\Python27;C:\Python27\Scriptsno final da string. Definindo o caminho no Win7

  • Para definir o caminho do intérprete sem mexer com o Sistema, %PATH%consulte esta resposta por ppy .

Qwerty
fonte
Desculpe, mas você pode explicar qual é o significado da opção "-u"? Não consigo encontrar a opção de lista de parâmetros de linha de comando para passar junto com python.exe.
Jim Raynor
@JimRaynor é sem buffer fluxos stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Você pode usar o SublimeREPL (você precisa primeiro instalar o Controle de Pacotes ).

invis
fonte
1
Você poderia elaborar sobre como enviar dados a partir de uma janela de script para SublimeREPL, porque ela não funciona para python, enquanto R funciona ...
Matt Bannert
6

Se você estiver usando o python 3.x, precisará editar o Python3.sublime-build

(Preferências> Procurar pacotes> Python 3)

para ficar assim:

{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
Daniel Romero
fonte
4

[Isso se aplica ao ST3 (Win), não tenho certeza sobre o ST2]

Para ter a saída visível no Sublime como outro arquivo (+ um por erros), faça o seguinte:

  1. Crie um novo sistema de construção: Tools > Build Systems > New Build System...
  2. Use a seguinte configuração:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "seletor": "source.python",
        "shell": true,
        "working_dir": "$ file_dir"
    }
  1. Para o seu arquivo Python, selecione o arquivo de configuração do sistema de compilação acima: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Agora, ao lado do seu arquivo, por exemplo, "file.py"você terá "file.__STDOUT__.py"e "file.__STDERR__.py"(se houver erros)
  4. Se você dividir sua janela em 3 colunas ou uma grade, verá o resultado imediatamente, sem a necessidade de alternar painéis / janelas
ellockie
fonte
2

Legal pessoal, acabei de encontrar o seguinte:

http://ptomato.wordpress.com/2012/02/09/geek-tip-running-python-guis-in-sublime-text-2/

Ele explica (como uma das respostas acima) como editar este exec.py no diretório padrão .

Tive o problema de que meu APLICATIVO DE UI PYTHON não seria iniciado. Comentei a última linha do seguinte trecho:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

e, taaadaaaa, eu poderia iniciar meu aplicativo pressionando Ctrl + B. Enfim, linha engraçada, não é? E um grande obrigado a quem escreveu esse artigo ;-)

anhoppe
fonte
Também resolveu o meu problema. A saída do console estava aparecendo no Sublime Text 2, mostrando que meu código estava em execução, mas minha GUI nunca apareceu. Eu comentei essa linha, e agora está. A saída do console ainda vai para o texto sublime. Perfeito!
Jonathan Lidbeck
1

Você pode acessar o console do Python via "View / Show console" ou Ctrl+ `.

cutucar
fonte
1
mas mostra o seguinte erro: Arquivo ". \ exec.py", linha 109, no arquivo de execução ". \ ntpath.py", linha 205, no diretório nomname Arquivo ". \ ntpath.py", linha 170, no arquivo dividido ". \ ntpath.py", linha 125, no splitErro TypeError: o objeto 'NoneType' não é passível de inscrição
neo
Por favor, forneça mais detalhes (expandindo a pergunta) sobre o que você está fazendo.
poke
Eu apenas digitei o código python como print 'hello' e, em seguida, compile-o e abra o console para ver esse erro.
Ne20:
O uso do console do Python não responde à pergunta . O intérprete incorporado destina-se apenas a interagir com a API do plug-in, não para desenvolvimento geral.
mkenyon
1

Eu resolvi este problema:

> Preferences –> Browse Packages –> Default 

Abra o exec.pyarquivo, perto da linha 41-42, o código deve ficar assim:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

exclua-o ou edite-o como:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Rhea
fonte
o que isso faz realmente? Como isso ajuda?
precisa
@ Qwerty Ele achou que o programa deveria lidar com exceções, então ele colocou o código em um trybloco.
CHM
Eu tentei isso. Não resolveu o problema e quebrou o comportamento existente.
Jonathan Lidbeck
1

Encontrei o mesmo problema hoje. E aqui está como eu consegui executar o código python no Sublime Text 3:

  1. Pressione Ctrl+ B(para Mac, + B) para iniciar o sistema de compilação. Ele deve executar o arquivo agora.
  2. Siga esta resposta para entender como personalizar o sistema de compilação.

O que você precisa fazer a seguir é substituir o conteúdo Python.sublime-buildpor

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

É claro que você pode personalizá-lo ainda mais para algo que funcione para você.

Huang Chao
fonte
1

Em python v3.x você deve ir para: Tools->Build System->New Build System.

Em seguida, abra a janela untitled.sublime-build no editor de texto sublime.

{

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

Para ver o caminho Type following in terminal as:

python
>>> import sys
>>>print(sys.executable)

Você pode criar mais de um sistema de compilação, mas ele deve ser salvo por padrão dentro dos pacotes de texto sublime com a extensão .sublime-build .

Em seguida, selecione o novo Build System e pressione cltr+bou outro com base no seu sistema operacional.

susan097
fonte
0

Eu tive o mesmo problema. Você provavelmente ainda não salvou o arquivo. Salve o código com a extensão .py e ele deve funcionar.

Onat
fonte
0

Uma coisa a ser observada sobre o sistema de compilação mencionado acima : você pode gravar (e usar) .sublime-buildarquivos personalizados ou até mesmo por build_systemscláusula de projeto (nas configurações do seu projeto). Isso permite que você faça coisas úteis, como um corredor de teste sofisticado com saída de cores ANSI .

Para ainda mais recursos de "IDE completo", você pode usar o excelente pacote SublimePythonIDE :

  • conclusão de código (intel)
  • pule para definição e descrição do objeto
  • linting adequado / pep8
  • suporta diferentes intérpretes com virtualenv

Divulgação: Eu já contribuiu com um PR a esse pacote, e eu usá-lo o tempo todo, mas não são os outros .

tutuDajuju
fonte
0

Use um console python real ao lado do Sublime

O sistema de construção do Sublime e o SublimeREPL (as respostas acima) são limitados, pois você não pode interagir facilmente com as variáveis ​​da área de trabalho depois de executar o arquivo.

Se você deseja executar um script, trabalhe de maneira semelhante ao REPL (como faria em um IDE), então recomendo que o Sublime seja aberto ao lado de um console IPython. Usando o AutoHotKey (Windows) ou o AutoKey (Linux), você pode configurar isso para que um único atalho copie o nome do arquivo (ou apenas o código selecionado) e cole-o no console para executar o arquivo.

Instruções detalhadas para Linux ou Windows

hugke729
fonte