Cada desenvolvedores de software e cientistas de dados inevitavelmente fazer pacote. Este artigo recomendar um pacote open source Python guia de construção, espero que este guia contém as etapas específicas que você pode fazer sem gastar muito tempo e paciência durante a criação do pacote. (Versão Python3.7 apropriado para o sistema MacOS)
Tentar construir-se uma coisa bonita, também! Passo 1: planoNosso objetivo final é produzir uma biblioteca Python simples que permite aos usuários facilmente converter Jupyter notebook como arquivos HTML ou scripts Python.
A primeira iteração do pacote permite que o usuário chamar a instrução de função de impressão.
Agora que sabemos o que o quer fazer, em seguida, dar o nome do pacote.
Passo 2: NamingNaming não é simples. Para obter o nome de um único, curto e fácil de lembrar, para todas as letras minúsculas são, não deve haver traços ou outros sinais de pontuação, sublinhados, também. Quando chamado para o pacote, também precisamos ter certeza que o nome está disponível no GitHub, Google e PyPI.
Se você é grandes expectativas para o pacote, na esperança de que um dia ele vai ter 10.000 estrelas no GitHub, você tem que confirmar se o nome pode ser usado para a rede social. No nosso exemplo, nós chamado o notebookc pacote, porque ele pode ser usado uma variedade de plataformas, e tem um sentido descritivo curto.
Passo 3: Verificar a configuraçãoCertifique-se de instalar configurado Python3.7, GitHub e Homebrew. Se desejar, pode ser baixado no seguinte:
píton
Baixe e instale Python3.7: https: //www.python.org/downloads/
GitHub
Assine conta GitHub livre: https: //github.com/join
Instalar o Git: https: //help.github.com/articles/set-up-git/
homebrew
Homebrew é específico do Mac gerenciador de pacotes do sistema. (Instalação: https: //brew.sh/).
Venv
Se você estiver usando a versão Python3.6, recomendamos venv para criar um ambiente virtual para construir o pacote. método de Python para gerenciar o ambiente virtual de muitos, recomenda-se a seguir, há muitos.
A partir da versão Python3.3, Python vem venv, mas prestar atenção, a partir da versão Python3.4 de, venv instalar setuptools e pip em um ambiente virtual.
Criar um ambiente virtual em Python3.7 com o comando seguinte:
python3.7-m venv my_env
My_env substituído pelo nome que quiser, ativar o ambiente virtual:
sourcemy_env / bin / activate
Agora você pode ver a extremidade esquerda da linha de comandos (my_env), ou vê-lo tomar o nome para o ambiente virtual.
Quando terminar, use a desactivar desactivar o ambiente virtual.
Depois disso, coloque no GitHub.
Etapa 4: Criar uma organização no GitHubGitHub está registrado no líder de mercado de controle de versão, e outros, incluindo gitlab Bitbucket também muito popular. Este guia estamos usando GitHub.
Siga as instruções para criar uma nova organização no GitHub. Vamos organizar chamado notebooktoall. Você pode criar uma base de conhecimento (repositório) em contas individuais, mas uma das nossas metas é aprender como criar um projeto open source para o grupo maior.
Etapa 5: Criar um repositório GitHubCriar uma nova base de conhecimento.
Adicionar gitignore a partir da lista drop-down, escolha Python como sua base de conhecimento. conteúdos gitignore do arquivo e dos jogos repositório git as pastas excluídos e tipos de arquivo. Você pode então modificar gitignore para eliminar outros arquivos desnecessários ou sensíveis.
É recomendado para escolher uma licença a partir da lista drop-down de licenças em Adicionar (Add alicense), que determina o que o usuário pode fazer usando o conteúdo da base de conhecimento. Algumas licenças podem ser menos se não houver nenhuma licença selecionada, o sistema usará a lei de direitos autorais padrão.
Projeto desta eleição é a General Public License v3.0 (GeneralPublic Licens v3.0), porque ele é amplamente utilizado, e pode "garantir que o usuário final prazo, estudar, compartilhar e modificar software livre" - Wikipedia.
Passo 6: Copie e add diretórioSelecione o local que deseja copiar no repositório local, e em seguida, execute as seguintes instruções:
Copiar git https://github.com/notebooktoall/notebookc.git
tecidos de substituição e base de conhecimento.
Uso em desktop interface gráfica do usuário (GUI) ou editor de código para entrar na pasta do projeto, ou linha de comando uso cd meu-projeto para a pasta do projeto e, em seguida, visualizar o arquivo com ls-A. As pastas iniciais e arquivos da seguinte forma:
.git .gitignore LICENÇA README.rstO arquivo de projeto principal para criar uma subpasta, o mesmo nome que o programa sugere uma subpasta do pacote, e certifique-se o nome não contém espaços.
Crie um arquivo chamado __init__.py na sub-pasta, esse arquivo pode estar vazio em primeiro lugar. Importar o arquivo para a subpasta, este arquivo é necessário.
Crie um arquivo com outra sub-pasta com o mesmo nome, e adicionar .py ao nome do arquivo. Meu nome do arquivo é .py notebook. Você pode pressionar a sua própria mente para o arquivo Python chamado.
Agora catálogo notebookc tem o seguinte teor:
.git .gitignore LICENÇA README.rst notebookc / __ init__.py notebookc / notebookc.py Passo 7: criar e instalar requirements_dev.txtCriar um arquivo no topo diretório do projeto requirements_dev.txt. Este arquivo é geralmente chamado requirements.txt. Assim chamado para enfatizar esses pacotes são todos os desenvolvedores instalados.
Em requirements_dev.txt onde pretende instalar uma versão específica do pip e roda.
pip == 19.0.3
roda == 0.33.1
Note-se aqui com dois sinal de igual eo número da versão indica a versão exata do pacote deve ser instalado.
A versão específica do pacote de programas para a requirements_dev.txt.
Se você quiser dividir a cooperação desenvolvedor do projeto Base de Conhecimento, uso pip de instalar o pacote requirements_dev.txt específico, e vai usar a mesma versão do seu pacote. Além disso, quando o arquivo foi criado, Leia TheDocs pode usar esse arquivo para instalar o pacote.
Ele tem sido ativo no ambiente virtual, use o seguinte comando para instalar o pacote de requirements_dev.txt:
pipinstall -r requirements_dev.txt
Passo 8: Código e submetêComo exemplo, vamos criar uma função muito simples. Você pode então construir uma função de gado.
Digite o seguinte no arquivo principal:
(Queremos tipo é notebookc / notebookc / notebookc.py)
converso def (my_name): "" " Imprimir um lineabout converter um notebook. args: my_name (STR): o nome da pessoa retorna: nenhum "" " imprimir (f "Vou converter um notebook para você algum dia, {my_name}.")Esta é a função que o construiu.
cordas documentação (docstrings), com três aspas duplas consecutivas começam e terminam. Em um artigo posterior, eles serão usados para criar automaticamente documentos.
Agora é submetido.
Passo 9: Criar um setup.pyarquivo setup.py como um pacote de arquivos script. Setuptools a função de configuração podem ser construídos para ser carregado para pacote PyPI. Há Setuptools informações, número da versão e outros procedimentos exigidos pelo pacote pacote do usuário.
O seguinte é uma exemplos de arquivo setup.py neste artigo:
de setuptools importar instalação, find_packages com open ( "README.md", "r") asreadme_file: leia-me = readme_file.read () requisitos = setup ( name = "notebookc", version = "0.0.1", author = "Jeff Hale", author_email = "jeffmshale@gmail.com", "Um pacote para converter seu Notebook Jupyter" description =, long_description = leia-me, long_description_content_type = "text / remarcação", url = "https://github.com/your_package/homepage/", pacotes = find_packages (), install_requires = requisitos, classificadores = )Note, long_description é o conteúdo README.md do interior documento.
Setuptools.setup.install_requiresincludes os requisitos especificados na lista inclui todos os pacotes necessários que dependem do funcionamento do pacote.
E requirements_dev.txt necessário o desenvolvimento de pacotes diferentes, a lista de pacotes deve ser o mais liberal.
O pacote de lista de pacotes install_requires limitado apenas instala necessário, você não quer que os usuários instalem pacotes desnecessários. Note-se que só precisa listar o pacote não pode pertencer a biblioteca padrão do Python. Se você usar o seu pacote, então é necessário instalar Python.
Este pacote não requer quaisquer dependências externas, para que possa eliminar quatro pacotes listados acima. Se você quiser dividir a base de conhecimento co-desenvolvedor do projeto, a instalação de um pacote específico usando pip, em seguida, usar a mesma versão do pacote e você.
O código é submetido a um repositório local Git. Agora tudo está pronto, você pode começar a construir um pacote!
Passo 10: A construção da primeira versãoTwine é um grupo de utilidade, pacote Python pode ser liberado com segurança em PyPI. Guita pacote adicionado à próxima fila vazia no requirements_dev.txt, como segue:
cordéis == 1.13.0Em seguida, reinstale requirements_dev.txt pacote para instalar Twine no ambiente virtual.
pipinstall -r requirements_dev.txt
Em seguida, execute o seguinte comando para criar o arquivo de pacote:
pythonsetup.py sdist bdist_wheelProcesso irá criar muitos pasta oculta: dist, construção e assim por diante, eu criei um notebookc.egg-info. Nós olhamos pasta de arquivo dist. arquivo .whl roda é uma distribuição de arquivo que é criado. arquivo .tar.gz é um arquivo de código-fonte.
rodaNo dispositivo do usuário, pip gostaria rodas ao mesmo tempo qualquer pacote de instalação possível. Roda tempo de instalação mais rápida. Quando pip não pode instalar roda, ele irá retornar para o arquivo de código-fonte.
Vamos nos preparar para fazer upload de roda e código fonte arquivá-lo.
Passo 11: Crie uma conta TestPyPIPyPI Python Package Index é uma abreviatura, é o oficial Python Package Manager. pip você pode pegar arquivos não são instalados localmente a partir PyPI no.
PyPITestPyPI é uma versão beta PyPI prazo. Note-se que os envios e fazer o upload do site oficial do local de ensaio senhas são diferentes.
Criando conta TestPyPI: https: //test.pypi.org/account/register/.
Passo 12: Colocar em TestPyPI twineCordéis com o pacote enviado para o TestPyPI com segurança. Digite o seguinte comando - sem modificação.
twineupload --repository-url https://test.pypi.org/legacy/ dist / *
Você será solicitado a digitar um nome de usuário e senha. Lembre-se, TestPyPI e PyPI senhas são diferentes.
Se necessário, alterar os erros de pacotes, criados no novo número da versão em setup.py, remover a versão antiga da construção, pasta dist e ovo. Com pythonsetup.py sdist bdist_wheel reconstruir, re-upload com guita. O número da versão não faz sentido em TestPyPI, este não é um grande negócio, porque você é a única pessoa com essas versões do pacote.
Depois de um upload bem-sucedido o pacote para se certificar de que pode ser instalado para usar.
Passo 13: confirmar a instalação e utilizaçãoCriar outra etiqueta no terminal, e criar outro ambiente virtual.
python3.7-m venv my_env
ativá-lo
my_env fonte / bin / activate
Se você enviou para PyPI site oficial do pacote, o próximo passo é instalar o pacote usando pip. PyPI a ser recuperada no pacote e, em seguida, instalá-lo usando um comando modificado.
A partir do guia oficial pacote de instalação TestPyPI é a seguinte:
By - índice-url comando bandeira pip faça o download e instalar o pacote em TestPyPI, sem ter que baixar em PyPI.
pip instalar - índice-url https://test.pypi.org/simple/ my_package
Se você deseja permitir pip download de pacotes adicionais sobre PyPI, você pode comandar - extra-index-url apontando PyPI. Se o programa que você testar o pacote tem dependências, o que pode ser muito útil.
pipinstall --índice-url https://test.pypi.org/simple/ --extra-index-urlhttps: my_package //pypi.org/simple
Se você tem um pacote de dependências de pacotes, o segundo comando mencionado acima, e substituir o seu nome do pacote.
Você deve olhar para a versão mais recente está instalado no ambiente virtual do pacote.
Para confirmar que o pacote pode ser usado para iniciar uma sessão de terminal com IPyon python.
E função de importação é chamado com o argumento string. Meu código é a seguinte:
converso importação fromnotebookc.notebookc
converter ( "Jeff")
Então você pode ver o seguinte resultado:
I'llconvert um notebook para você algum dia, Jeff.Confirmado pode ser usado.
Bem, agora os trabalhos enviados para o bar Git Hub.
Passo 14: Carregar a GitHubCertifique-se de que seu código foi submetido.
notebookc pastas de projeto são os seguintes:
.git .gitignore LICENÇA README.md requirements_dev.txt setup.py notebookc / __ init__.py notebookc / notebookc.pyExcluindo ambiente virtual você não deseja carregar. Selecionado ao criar um repositório de arquivos membro .gitignore Python não podem ser indexados.
Pode ser necessário excluir a pasta ambiente virtual.
O ramo disseminação local para GitHub com my_branch pushorigin git.
Passo 15: Criando e fundindo PRGithub abrir em seu navegador, você pode ver a opção de solicitação de recebimento. Pressione o botão verde para criar e consolidar o seu PR, e excluir o recurso filial remota.
Voltar ao terminal, usando gitbranch -d my_feature_branch recurso de exclusão filial local.
Revisão: Fazendo o pacote de 15 etapas1. Plano
2. Nome
3. Verifique a configuração
4. Criar uma organização no GitHub
5. Criar um repositório GitHub
6. Copie e adicionar o diretório
7. Criar e instalar requirements_dev.txt
8. Envie código e
9. Criar setup.py
10. A construção da primeira versão
11. Crie uma conta TestPyPI
12. publicada em TestPyPI
13. Confirmar instalação e uso
14. Carregar a GithHub
15. Criar uma fusão com PR