Apêndice

Prévio

Python Logo15.Apêndice

15.1. Modo Interativo

15.1.1. Tratamento de erros

Quando ocorre um erro, o interpretador imprime uma mensagem de erro e um stack trace. No modo interativo, retorna-se ao prompt primário; quando a entrada veio de um arquivo, ele sai com um status de saída diferente de zero depois de imprimir o stack trace. (Exceções tratadas por uma cláusula except em uma instrução try não são erros neste contexto.) Alguns erros são incondicionalmente fatais e causam uma saída diferente de zero; isso se aplica a inconsistências internas e alguns casos de falta de memória. Todas as mensagens de erro são gravadas no fluxo de erro (error stream) padrão; saída normal de comandos é direcionada para a saída padrão.

Digitando o caráter de interrupção (geralmente Control-C ou DEL) no prompt primário ou secundário cancela a entrada e retorna ao prompt primário. [1] Digitando uma interrupção enquanto um comando está em execução levanta a exceção KeyboardInterrupt, que pode ser tratada por um try.

15.1.2. Python Scripts Executáveis

Em sistemas Unix BSD’is, scripts Python podem ser feitos diretamente executável, como shell scripts, colocando a linha
#!/usr/bin/env python

(assumindo que o intérprete está no PATH do usuário) no início do script e dando ao arquivo um modo executável. O #! devem ser os dois primeiros caracteres do arquivo. Em algumas plataformas, esta primeira linha deve terminar com uma linha Unix-style final (‘\ n’), e não a (‘\ r \ n’) na linha do Windows terminando. Note-se que o hash, ou libra, caráter, ‘#‘, é usado para iniciar um comentário em Python.

O script pode ser dado um modo ou permissão executável, usando o comando chmod.

$ chmod +x myscript.py
Em sistemas Windows, não há noção de um “modo executável”. O instalador Python associa automaticamente .py arquivos com python.exe para que um duplo-clique em um arquivo Python irá executá-lo como um script. A extensão também pode ser .pyw, nesse caso, a janela de console que normalmente aparece é suprimida.

15.1.3. O arquivo Interativo Startup

Quando você usa Python interativamente, é frequentemente útil ter alguns comandos padrão executados toda vez que o interpretador é iniciado. Você pode fazer isso definindo uma variável de ambiente chamada PYTHONSTARTUP para o nome de um arquivo que contém os comandos de start-up. Isto é semelhante ao recurso .profile das conchas Unix.

Este arquivo é somente lido em sessões interativas, e não quando Python lê comandos de um script, e não quando /dev/tty é dado como fonte de leitura de comandos (que de outra forma se comporta como uma sessão interativa). Ele é executado no mesmo namespace onde comandos interativos são executados, de modo que os objetos que ele define ou importa podem ser usados sem qualificação na sessão interativa. Você também pode alterar os prompts sys.ps1 e sys.ps2 através deste arquivo.
Se você quiser ler um arquivo de start-up adicional a partir do diretório atual, você pode programar isso no arquivo de start-up global usando código como os.path.isfile(‘python.py.’): exec (open (‘ .pythonrc.py ‘).read ()). Se você quiser usar o arquivo startup em um script, você deve fazer isso de forma explícita no script:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
       startup_file = fobj.read()
    exec(startup_file)

15.1.4. Os Módulos de Customização

Python fornece dois ganchos para permitir que você o personalize: sitecustomize e usercustomize. Para ver como funciona, você precisa primeiro a encontrar a localização do seu diretório site-packages do usuário. Comece Python e executar este código:
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python2.7/site-packages'

Agora você pode criar um arquivo chamado usercustomize.py nesse diretório e colocar o que quiser nele. Vai afetar cada invocação de Python, a menos que seja iniciado com a opção -s para desativar a importação automática.

sitecustomize funciona da mesma maneira, mas é geralmente criado por um administrador do computador no diretório site-packages global, e é importado antes usercustomize. Consulte a documentação do módulo local para obter mais detalhes.

Notas de Rodapé

[1] Um problema com o pacote GNU Readline podem impedir isto
Prévio