O guia "Python Distribute" (estava em python-distribute.org, mas o registro expirou) me diz para incluir doc/txt
arquivos e os .py
arquivos são excluídos do MANIFEST.in
arquivo
A documentação do sourcedist me diz que apenas o sdist usa MANIFEST.in
e inclui apenas o arquivo que você especificar e para incluir .py
arquivos. Ele também me diz para usar: python setup.py sdist --manifest-only
para gerar um MANIFEST
, mas o python me diz que isso não existe
Eu aprecio que eles são de diferentes versões do python e o sistema de distribuição está em uma bagunça completa, mas supondo que eu esteja usando o python 3 e setuptools
(o novo que inclui distribuição, mas agora chamado de setuptools, não o antigo setuptools que foi preterido apenas para ferramentas de distribuição para ser trazido de volta para distribuir e distribuir renomeado para setuptools .....)
e estou seguindo a estrutura de pasta e setup.py
arquivo "padrão" ,
- Eu preciso de um
MANIFEST.in
? - O que deve estar nele?
- Quando todos esses diferentes sistemas e métodos de pacotes serão transformados em um único processo simples?
fonte
sdist
(significa: distribuição de origem ). Se você considerar issobdist
ebdist_wheel
forem binários e destinados apenas a serem instalados em seu caminho python, isso faz sentido. (Para onde iriam esses arquivos e diretórios que não são do módulo? Para dentro/usr/local/lib/python2.7/dist-packages/
? Certamente não.) Mas vale a pena mencionar, pois é confuso ver o arquivo criado e eles não incluem os arquivos.package_data
e asdata_files
recomendações, que estão fora do escopo, vou continuar.package_data
lista o arquivo que foi instalado com o seu pacote edist-packages/yourpackage
que teria sido ignorado porque não tem um nome * .py.data_files
lista os arquivos que são instalados fora do seu pacote. Cada entrada especifica um caminho de destino com o prefixosys.prefix
se for relativo ou criado diretamente (se as permissões permitirem) se começar com um/
.pbr
é uma boa ideia.Pergunta antiga, nova resposta:
Não, você não precisa
MANIFEST.in
. No entanto, parasetuptools
fazer o que você (normalmente) quer dizer, você precisa usar osetuptools_scm
, que desempenha a função deMANIFEST.in
em 2 lugares-chave:sdist
comando (onde todos os arquivos relevantes são definidos como "todos os arquivos sob controle de origem")include_package_data
para incluir dados do pacote como parte debuild
oubdist_wheel
. (novamente: arquivos sob controle de origem)O entendimento histórico
MANIFEST.in
é: quando você não tem um sistema de controle de origem, você precisa de algum outro mecanismo para distinguir entre "arquivos de origem" e "arquivos que estão em seu diretório de trabalho". No entanto, seu projeto está sob controle de origem (certo ??), portanto, não há necessidadeMANIFEST.in
. Mais informações neste artigo .fonte