Eu gostaria de escrever um programa usando Python noJúpiter. Para facilitar as coisas, seria melhor escrever algumas sub-rotinas (funções) e provavelmente algumas classes definidas pelo usuário antes de escrever o script principal. Como organizá-las em Jupiter? Apenas cada sub-função / classe para uma nova linha e escrever sequencialmente e, em seguida, escrever o script principal abaixo para chamar sub-rotinas? Eu só me pergunto se esse é o caminho certo para usar o Jupyter.
Eu sou novo no Jupyter e Python, mas no Matlab,por exemplo, eu criaria uma pasta que contém todas as sub-funções a serem usadas. E também escreverei um script dentro da mesma pasta para chamar essas funções para realizar a tarefa. No entanto, como faço para conseguir isso em Python usando o Jupyter?
Respostas:
-1 para resposta № 1A melhor coisa a fazer para o código repetido que você desejatodo o seu notebook para acessar é adicioná-lo ao diretório do perfil. O notebook carregará todos os scripts desse diretório em ordem, por isso é recomendável que você nomeie os arquivos 01-<projname>.py
se você deseja que eles carreguem em uma determinada ordem. Todos os arquivos nesse diretório serão carregados via exec
que executa o arquivo como se estivesse no seucontexto, não é um carregamento de módulo, portanto os globais se esmagam e todo o contexto do modelo estará no seu espaço de nomes local posteriormente (semelhante a um import *
efeito).
Para encontrar o diretório do perfil, os documentos recomendam que você use ipython locate profile <my_profile_name>
. Isso informará onde você pode colocar o script.
2 para resposta № 2
Eu uso notebooks principalmente para análise de dados. Meu fluxo de trabalho é o seguinte: Durante o desenvolvimento, declaro todas as minhas rotinas em células de notebook. Quando preciso das mesmas funções para o próximo conjunto de dados, geralmente copio e colo-as no novo bloco de notas. Muitas vezes, tenho que adaptar um pouco as funções para o novo conjunto de dados. Quando descobri que uso funções frequentemente em cadernos de maio, crio um módulo separado (apenas um arquivo python com as funções coladas nele) e coloco esse diretório "global" em python (~/python
) no meu sistema. Esta função está na minha $pythonpath
e, portanto, no próximo caderno, posso simplesmente dizer
from read_data_functions import square_measurement, long_run