15 passos, você pode ter seus próprios pacotes Python

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: plano

Nosso 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: Naming

Naming 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ção

Certifique-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 GitHub

GitHub 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 GitHub

Criar 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ório

Selecione 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.rst

O 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.txt

Criar 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.py

arquivo 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ão

Twine é 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.0

Em 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_wheel

Processo 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.

roda

No 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 TestPyPI

PyPI 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.

PyPI

TestPyPI é 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

twine

Cordé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ção

Criar 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 GitHub

Certifique-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.py

Excluindo 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 PR

Github 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 etapas

1. 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

Jia Yueting cabelo vocal, como a crise: Eu vou devolver o dinheiro!
Anterior
Japão lutas internas dentro da coalizão, mas contribuiu para o Leste Asiático Futebol agradável
Próximo