Como criar um pacote python 2.x - caso simples
Por favor, mostre a maneira simples e atualizada de criar um pacote python para python 2.x
Eu preferiria usar o pip para instalar o pacote mais tarde.
O pacote deve conter uma única classe:
class hello:
def greet(self):
print "hello"
Um deve poder fazer o seguinte mais tarde:
pip install my_package-0.1.1....
E depois usá-lo:
from my_package import hello
h = hello.hello()
h.greet()
O que estou pedindo é:
O diretório e o layout do arquivoConteúdo dos arquivoscomando para criar o arquivo do pacote distribuívelcomando para instalar o pacote a partir do arquivo de pacote distribuível (usando preferencialmente pip)Existem vários howtos que encontrei, mas ainda não tenho certeza de como esse caso muito simples e simples (sem pacotes aninhados, remoção de todos os arquivos e recursos que podem ser omitidos no caso mais simples) seria tratado e qual é o moderno maneira de fazer isso.
Gostaria que esta pergunta entrasse no estado wiki da comunidade, para que você não obtenha nenhum ponto, e darei tempo suficiente e marcará uma resposta aceita após vários dias, considerando também os votos e comentários.
Editar:
Eu tenho um primeiro exemplo que quero compartilhar, usei a resposta de Marius Gedminas para isso. Ele não contém tudo o que deveria estar lá, mas funciona, para demonstrar o núcleo do processo técnico. Para adicionar mais peças necessárias, leia a resposta de Marius abaixo.
Estrutura de diretório:
MyProject/
setup.py
my_package.py
README.txt
MANIFEST.in
setup.py:
from setuptools.import setup
setup(name='MyProject',
version='0.1',
py_modules=['my_package'])
my_package.py:
class hello:
def greet(self):
print "hello"
MANIFEST.in:
include *.txt
Para criar o pacote desta pasta, vá para a pasta MyProject e execute:
$ python setup.py sdist
Isso criará um arquivoMyProject-0.1.tar.gz
em uma subpastadist/
. Copie esse arquivo para uma pasta na máquina de destino.
Na máquina de destino, execute este comando na pasta que contémMyProject-0.1.tar.gz
:
sudo pip install MyProject-0.1.tar.gz
Pode ser necessário sair e fazer login novamente na máquina de destino agora, para que o pacote seja encontrado. Depois, você pode testar o pacote na máquina de destino usando o shell python:
$ python
>>> import my_package
>>> h = my_package.hello()
>>> h.greet()
hello
>>>
Quando isso funcionar, lembre-se de adicionar os outros conteúdos necessários, veja a resposta de Marius abaixo.