Как создать пакет python 2.x - простой случай

Пожалуйста, покажите простой и актуальный стандартный способ создания пакета python для python 2.x

Я бы предпочел использовать pip для установки пакета позже .

Пакет должен содержать единственный класс:

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

Позже можно будет сделать следующее:

pip install my_package-0.1.1....

А затем использовать его:

from my_package import hello

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

Я прошу:

  • Каталог и файл layout
  • Содержание команды files
  • для создания файла распространяемого пакета
  • команда для установки пакета из файла распространяемого пакета (предпочтительно с использованием pip)

Я нашел несколько советов, но я все еще не уверен, как этот очень простой и урезанный случай (нет вложенных пакетов, удаление всех файлов и функций, которые могут быть опущены в простейшем случае), и это современный способ сделать это.

Я хотел бы, чтобы этот вопрос вошел в состояние вики сообщества, чтобы вы не получили никаких очков, и я дам достаточно времени и отмечу ответ принятым через несколько дней, также с учетом голосов и комментариев.

Edit:

У меня есть первый работающий пример, которым я хочу поделиться, я использовал ответ Мариуса Гедминаса для Это. Он не содержит всего, что должно быть, но он работает, поэтому может продемонстрировать суть технического процесса. Чтобы добавить больше необходимых частей, прочтите ответ Мариуса ниже.

Структура каталогов:

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

Чтобы создать пакет из этой папки, перейдите в папку MyProject и запустите:

$ python setup.py sdist

Будет создан файл MyProject-0.1.tar.gz в подпапке dist / . Скопируйте этот файл в папку на целевой машине.

На целевой машине запустите эту команду в папке, содержащей MyProject-0.1.tar.gz :

sudo pip install MyProject-0.1.tar.gz

Может потребоваться выйти из системы и повторно -login на целевой машине сейчас, так что пакет будет найден. После этого вы можете протестировать пакет на целевой машине с помощью оболочки python:

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

Как только это сработает, не забудьте добавить другое необходимое содержимое, см. Ответ Мариуса ниже.

19
задан mit 11 November 2010 в 19:02
поделиться