Uma das perguntas mais comuns dos iniciantes na linguagem é “Qual a melhor IDE para Python?”. A resposta curta é que depende muito das preferências pessoais do programador, já que as IDEs para Python possuem funcionalidades bastante parecidas.
A grande questão, no entanto, é que Python foi projetada para ser intuitiva e fácil de usar. Essa característica da linguagem faz com que, na prática, uma IDE pesada seja praticamente desnecessária. Com um bom editor de textos e o interpretador interativo a postos, já é possível obter excelentes níveis de produtividade.
Mesmo o Sublime Text “puro”, ou seja, sem quaisquer plugins, já traz facilidades como o realce de sintaxe, as configurações de identação e os snippets que ficam disponíveis quando o arquivo que está sendo editado é código-fonte Python. Também vale considerar o melhor desempenho e leveza da execução do Sublime em comparação com uma IDE rodando em máquina com a mesma configuração.
Navegação de código
Talvez uma das principais funções de uma IDE, aquela que na prática é a que usamos mais vezes, seja a facilidade de navegar pelo código de um projeto. Em projetos maiores, a capacidade de se mover com rapidez entre trechos de códigos dos diversos arquivos é absolutamente essencial.
Uma das principais finalidades do Sublime Text é justamente tornar essa navegação tão rápida e intuitiva quanto possível. Para isso, existem as funcionalidades:
- Goto Anything
(Ctrl+P)
: abre uma lista de seleção que possui um campo de busca por arquivos abertos ou que pertencem a um projeto. O campo serve para filtrar o conteúdo da lista à medida em que digitamos o nome do arquivo que queremos abrir. - Goto Symbol
(Ctrl+R)
: abre uma lista de seleção na qual podemos escolher um dos símbolos (identificadores) contidos no arquivo atual e leva o cursor para a linha em que ele está definido. - Goto Definition
(F12)
: ao ser acionado, o comando leva você para a posição da definição do símbolo que está sob o cursor. (ST3) - Goto Symbol in Project
(Ctrl+Shift+R)
: abre uma caixa de pesquisa para que você escolha um símbolo dentre os que existem no projeto e leva o cursor para a definição do símbolo selecionado. (ST3)
Barra lateral
Uma outra facilidade para navegação de que as IDEs proporcionam é a barra lateral para a visualização e navegação entre arquivos do projeto. O Sublime Text também possui recurso semelhante, que pode ser ativado e desativado pelo menu View > Sidebar. No entanto, as opções que o menu de contexto da barra lateral (aquele que aparece quando clicamos com o botão direito do mouse) são um tanto limitadas. Para contornar essas limitações, é possível instalar o plugin SidebarEnhancements (ST3).
Este plugin adiciona ao menu de contexto algumas opções como “Abrir com…”, copiar caminho do arquivo como texto, copiar conteúdo do arquivo em outras codificações (UTF-8, base64 etc.), pesquisa de texto (no arquivo, na pasta ou no projeto) entre outras.
Padronizando seu código
Se você programa em Python, já deve ter ouvido falar da famosa PEP-8, que estabelece um guia de estilo para o código escrito na linguagem.
O Sublime Text conta com alguns plugins que sinalizam quando o código que você está escrevendo contém algum trecho que não está de acordo com a PEP-8. Alguns deles permitem até mesmo reformatar o código para que fique em conformidade com a convenção de código recomendada.
Vale ressaltar que alguns desses plugins dependem de ferramentas externas para funcionar, enquanto outros já trazem as dependências incluídas na instalação. Por isso, é sempre bom ler as instruções de cada plugin com atenção.
Como autocompletar código Python no Sublime Text
O recurso de autocompletar padrão do Sublime Text funciona apenas para palavras que já existem no arquivo que está sendo editado. Embora isso já seja bastante útil, normalmente precisamos que o autocompletar seja um pouco mais inteligente e “adivinhe” que queremos usar algum método, função, classe ou variável que esteja disponível em algum dos módulos Python que estamos importando para o nosso projeto.
Para isso, o ideal é instalar um dos seguintes plugins:
Plugins específicos para Python
Os plugins a seguir têm como proposta fornecer uma um conjunto de funcionalidades específicas para Python que vão além do recurso de autocompletar, tais como refatoração de código, assistente de importação de módulos, entre outros recursos típicos de uma IDE completa.
- Anaconda
- SublimeRope (ST2)
- SublimePythonIDE (ST3)
Controle de versões
Outra facilidade proporcionada por IDEs é a integração com sistemas de controle de versão. Com os plugins a seguir, é possível obter um nível de integração suficiente para realizar as tarefas mais comuns.
Conclusão
Estas foram algumas dicas e opções de pluigns para quem deseja ter os principais recursos de uma IDE para Python completa no Sublime Text. É claro que existem muitas outras alternativas de plugins que podem ser incorporados à sua instalação do Sublime para proporcionar uma experiência personalizada. O grande segredo é testar cada uma delas para descobrir a que mais combina com seu estilo.
Conhece alguma outra dica, snippet, configuração ou plugin que seja útil para quem programa em Python? Compartilhe com a gente nos comentários!
* * *
Gostou do conteúdo? Crie seu próprio site com a Hostinger!
Hospedagem confiável, preços acessíveis e suporte de qualidade. Tudo que você precisa para montar seu site com rapidez e facilidade. Clique no link abaixo e aproveite o desconto especial de 20% para novos clientes! ⬇️
Quero criar meu site!
Comece sua jornada online agora mesmo!
Link permanente
Fantástico! Conheci mais alguns plugins, testei alguns e já adotei 🙂
Link permanente
Valeu, grande Erick! Abraço!
Link permanente
Gostaria de saber se há alguma coisa para Java.
Link permanente
Infelizmente existem poucas opções de plugins para Java. Parece que os programadores Java, até pelas características da linguagem, preferem as IDEs específicas tradicionais.
Link permanente
Olá, estou com um problema com o sublime e python, ele não está compilando.
quando tento rodar o código (bem simples, só um “print”) ele dá erro 🙁 Alguém pode me ajudar?
Link permanente
Olá, Clara! Poderia enviar o código e descrever passo a passo como você está fazendo para executá-lo?
Link permanente
o código é : print(“ola”)
rsrs
eu coloco a syntax como python e do um build, só que ai dá erro e não compila…
Link permanente
Clara,
Na verdade, o que determina como o Sublime vai fazer para compilar o código (ou interpretar, no caso do Python) é o build system e não a syntax.
Se você ainda não fez isso, experimente primeiro salvar o seu código em um arquivo com a extensão .py (ex: “ola.py”). Depois, certifique-se que em Tools | Build System está selecionada a opção Python. Em seguida dê um
Ctrl+B
(ou vá em Tools | Build) e veja se funciona. Se não der certo, copie e cole a mensagem de erro aqui, ok?Link permanente
Estava procurando uma IDE para começar a trabalhar com Python. Suas postagens ajudaram bastante e essa em especial na resposta para a Clara me ajudou muito. Obrigado por compartilhar o conhecimento.
Vou continuar lendo as outras Dicas pois quem é curioso aprende mais.
Link permanente
Eu já havia feito isto.
[Decode error – output not utf-8]
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u “C:\UFBA\ILP\aula_1.py”]
[dir: C:\UFBA\ILP]
[path: C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\altera\13.1\quartus\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\altera\13.1\modelsim_ase\win32aloem]
Link permanente
Clara,
Pelo que pude notar da mensagem de erro você está usando Windows, que usa um encoding diferente do UTF-8 que é o padrão do Sublime. Para contornar isso, o que você pode fazer é ir em Tools | Build System | New Build System e colar o conteúdo a seguir:
{
"shell_cmd": "python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp1252"
}
Isso é exatamente o build system original para Python, só que acrescido do atributo encoding com o valor “cp1252” que corresponde ao que o Windows usa.
Em seguida salve o arquivo com o nome de
PythonWindows.sublime-build
na pasta Packages/User (a caixa de diálogo de salvar deve abrir já nesta pasta, mas em todo caso certifique-se).Depois disso, a opção Tools | Build System | PythonWindows deve estar disponível. Selecione-a e tente rodar o build novamente. Se o executável do Python estiver no PATH do Windows, deve funcionar normalmente.
Link permanente
Deve ter alguma coisa errada com este código por que agora ele dá outro erro… D:
Fiz exatamente como disse e agora abre uma caixa dizendo:
error trying to parse build system: unexpected character, expeted a comma or closing bracket in packages\user\pythonwindows.sublime-build:2:27
Link permanente
Ficou faltando fechar as aspas no final do cp1252, mas já está corrigido. Obrigado!
Link permanente
Oi Rodrigo, depois de muito tentar e pesquisar finalmente achei o problema, o sublime não estava encontrando onde o python estava instalado, era só colocar o caminho. O código da build ficou assim:
{
“cmd”: [“C:\\python34\\python.exe”,”-u”, “$file”],
“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,
“selector”: “source.python”
}
Obrigada pela ajuda!
Link permanente
A build do Rodrigo não funcionou para mim (python 3.4), a da Clara funcionou mas tive que colocar a parte do encoding do Rodrigo.
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp1252"
}
Lembrando que o diretório do python precisa estar no PATH do windows.
Link permanente
Rodrigo, parabéns pelo publicação.
Sou novato ainda no mundo python, estou utilizando o o sublime em um macbook.
Minha duvida é:
Quando eu tento “Buildar” um código como por exemplo:
d = float (input(‘Digite a distancia a percorrer: ‘))
v = float (input(‘Digite a velocidade media: ‘))
t = d / v
print (‘O tempo medio de viagem eh de: %.1f hora ‘ %t)
Retorna o seguinte erro:
igite a distancia a percorrer: Traceback (most recent call last):
File “/Users/user/Documents/Python/python_testes/01.py”, line 1, in
d = float (input(‘Digite a distancia a percorrer: ‘))
EOFError: EOF when reading a line
[Finished in 0.0s with exit code 1]
Sabe o que pode ser?
Obrigado.
Link permanente
Rodrigo Amaral, eu posso usar o Sublime Text 3? Qual o plugin eu instalo e como proceder?
Link permanente
Olá, Frederico! Não entendi muito bem sua dúvida? Está tendo algum problema para instalar no Sublime Text 3 os plugins citados?
Link permanente
Sim, eu gostaria se saber o que preciso fazer para funcionar o Python no sublime. Alguma configuração? Estou usando o Python 3.5
Link permanente
Olá, Rodrigo, boa noite.
Comecei o aprendizado (online) de programação python semana passada e, às vezes, respostas para coisas simples são difíceis de encontrar na rede.
Ainda, tudo é novo e estranho para mim, mas espero em breve poder desfrutar devidamente do conteúdo do seu site.
Mas, por ora, você possa me ajudar?
Acabei de instalar o Sublime, e toda vez preciso especificar a linguagem que vou usar, em “View” > “Syntax”, para cada novo projeto.
Procurei no “Setting” das preferências, mas não encontrei onde pudesse fazer a alteração necessária.
Há como definir python, ou outra linguagem, como linguagem padrão?
E, aproveitando a ocasião, é possível mandar rodar no IDLE um programa que estou escrevendo no Sublime, como fazemos com o “Run Module” do editor do IDLE?
Muito agradecido!
Um abraço.
Link permanente
Link permanente
No meu caso, eu preciso salvar o arquivo com a extensão .py para rodar o programa. Senão aparece o erro que o interpretador não foi encontrado.
Isso é normal com a IDE Sublime?