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.

questionAnswers(2)

yourAnswerToTheQuestion