Cómo crear un paquete python 2.x - caso simple

Muestre la forma estándar simple y actualizada de crear un paquete de Python para Python 2.x

Prefiero usar pip para instalar el paquete más tarde.

El paquete debe contener una sola clase:

class hello:
  def greet(self):
    print "hello"

Uno debería poder hacer lo siguiente más tarde:

pip install my_package-0.1.1....

Y luego usándolo:

from my_package import hello

h = hello.hello()
h.greet()

Lo que estoy pidiendo es:

El directorio y el diseño del archivoContenido de los archivoscomando para crear el archivo de paquete distribuiblecomando para instalar el paquete desde el archivo del paquete distribuible (usando preferiblemente pip)

Hay varios procedimientos que encontré, pero todavía no estoy seguro de cómo se manejaría este caso muy simple y despojado (sin paquetes anidados, eliminación de todos los archivos y características que se pueden omitir para el caso más simple) y cuál es el moderno manera de hacerlo

Me gustaría que esta pregunta ingrese al estado wiki de la comunidad, para que no obtenga ningún punto y le daré suficiente tiempo y marcaré una respuesta aceptada después de varios días, también considerando los votos y comentarios.

Editar:

Tengo un primer ejemplo que quiero compartir, usé la respuesta de Marius Gedminas para ello. No contiene todo lo que debería estar allí, pero funciona, por lo que puede demostrar el núcleo del proceso técnico. Para agregar más partes necesarias, lea la respuesta de Marius a continuación.

Estructura de directorios:

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 crear el paquete desde esta carpeta, vaya a la carpeta MyProject y ejecute:

$ python setup.py sdist

Esto creará un archivoMyProject-0.1.tar.gz en una subcarpetadist/. Copie este archivo a una carpeta en la máquina de destino.

En la máquina de destino, ejecute este comando en la carpeta que contieneMyProject-0.1.tar.gz:

sudo pip install MyProject-0.1.tar.gz

Puede ser necesario cerrar sesión y volver a iniciar sesión en la máquina de destino ahora, por lo que se encontrará el paquete. Luego, puede probar el paquete en la máquina de destino utilizando el shell de Python:

$ python
>>> import my_package
>>> h = my_package.hello()
>>> h.greet()
hello
>>> 

Una vez que esto funcione, recuerde agregar los otros contenidos necesarios, vea la respuesta de Marius a continuación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta