Eu me pego digitando import numpy as np
quase todas as vezes que ligo o interpretador python. Como configuro o interpretador python ou ipython para que numpy seja importado automaticamente?
Eu me pego digitando import numpy as np
quase todas as vezes que ligo o interpretador python. Como configuro o interpretador python ou ipython para que numpy seja importado automaticamente?
Respostas:
Use a variável de ambiente PYTHONSTARTUP . Da documentação oficial:
Se este for o nome de um arquivo legível, os comandos Python nesse arquivo serão executados antes do primeiro prompt ser exibido no modo interativo. O arquivo é executado no mesmo namespace onde os comandos interativos são executados para que os objetos definidos ou importados nele possam ser usados sem qualificação na sessão interativa.
Portanto, basta criar um script Python com a instrução import e apontar a variável de ambiente para ele. Dito isso, lembre-se de que 'Explícito é sempre melhor do que implícito', portanto, não dependa desse comportamento para scripts de produção.
Para Ipython, veja este tutorial sobre como fazer um arquivo ipython_config
env PYTHONSTARTUP="~/.startup.py"
não funcionou para mim
export PYTHONSTARTUP=~/.python_shell_startup.py
para definir a variável.
Para ipython, existem duas maneiras de fazer isso. Ambos envolvem o diretório de configuração do ipython que está localizado em ~/.ipython
.
~/.ipython/profile_default/startup/
Para simplificar, eu usaria a opção 2. Tudo que você precisa fazer é colocar um arquivo .py
ou .ipy
no ~/.ipython/profile_default/startup
diretório e ele será executado automaticamente. Assim, você pode colocar import numpy as np
em um arquivo simples e terá np no namespace do prompt do ipython.
A opção 2 realmente funcionará com um perfil personalizado, mas o uso de um perfil personalizado permitirá que você altere os requisitos de inicialização e outras configurações com base em um caso específico. No entanto, se você sempre como np
estar disponível para você, então por todos os meios colocá-lo no diretório de inicialização.
Para obter mais informações sobre a configuração do ipython. Os documentos têm uma explicação muito mais completa.
~/.config/ipython/profile_default/startup/
e não~/.ipython/profile_default/startup/
Eu uso um arquivo ~ / .startup.py como este:
# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")
pp = pprint.pprint
Em seguida, defina PYTHONSTARTUP = ~ / .startup.py e o Python o usará ao iniciar um shell.
As instruções de impressão estão lá, portanto, quando eu inicio o shell, recebo um lembrete de que ele está em vigor e do que já foi importado. O pp
atalho também é muito útil ...
~
como um substituto para $HOME
funciona ou não, mas em vez desse caminho relativo eu tive que usar um caminho absoluto no MacOS, fish e python3.
Embora a criação de um script de inicialização personalizado como ravenac95 sugira que seja a melhor resposta geral para a maioria dos casos, não funcionará nas circunstâncias em que você deseja usar um from __future__ import X
. Se você às vezes trabalha com Python 2.x, mas deseja usar a divisão moderna, só há uma maneira de fazer isso. Depois de criar um perfil, edite o profile_default
(no Ubuntu, está localizado em ~/.ipython/profile_default
) e adicione algo como o seguinte na parte inferior:
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
Como uma alternativa mais simples para a resposta aceita, no linux:
apenas defina um alias, por exemplo, coloque alias pynp='python -i -c"import numpy as np"'
em seu arquivo ~ / .bash_aliases. Você pode então invocar python + numpy com pynp
, e ainda pode usar apenas python com python
. O comportamento dos scripts Python não é alterado.
PYTHONSTARTUP
só é invocado no modo interativo , então o comportamento dos scripts python é mantido inalterado de qualquer maneira. Um alias também pode ser criado com uma referência de arquivo:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Você pode criar um script python normal como import_numpy.py
ou qualquer coisa que desejar
#!/bin/env python3
import numpy as np
em seguida, lance-o com a -i
bandeira.
python -i import_numpy.py
Assim, você terá flexibilidade para escolher apenas os módulos desejados para diferentes projetos.
Como ravenac95 mencionou em sua resposta , você pode criar um perfil personalizado ou modificar o perfil padrão. Esta resposta é uma visão rápida dos comandos do Linux necessários para import numpy as np
automaticamente.
Se você quiser usar um perfil personalizado chamado numpy
, execute:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
Ou se você deseja modificar o perfil padrão para sempre importar numpy:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Confira o tutorial de configuração do IPython para ler mais a fundo sobre a configuração de perfis. Veja .ipython/profile_default/startup/README
para entender como funciona o diretório de inicialização.
Minha ipython
invocação padrão é
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
tem sido uma ipython
opção há algum tempo. Importa numpy
e (partes de) matplotlib
. Adicionei a --Inter...
opção para não usar a *
importação, pois prefiro usar a explícita np....
.
Pode ser um atalho, apelido ou script.