ich in Lizenz Diskussion hier nicht bekommen, aber es ist typisch Lizenzdatei an der Wurzel des Pakets Quellcode enthält, zusammen mit andere übliche Dinge wie README, etc.
Ich organisiere normalerweise Pakete auf die gleiche Weise wie sie auf dem Zielsystem installiert werden. Das Standardpaket Layout Konvention wird here. erklärt
Zum Beispiel, wenn mein Paket ‚torrent‘ ist, und es hat ein paar Unterpakete wie ‚Tests‘ und ‚util‘, hier ist die Quelle Baum aussehen würde:
workspace/torrent/setup.py
workspace/torrent/torrent/__init__.py
workspace/torrent/torrent/foo.py
workspace/torrent/torrent/bar.py
workspace/torrent/torrent/...
workspace/torrent/torrent/tests/__init__.py
workspace/torrent/torrent/tests/test.py
workspace/torrent/torrent/tests/...
workspace/torrent/torrent/util/__init__.py
workspace/torrent/torrent/util/helper1.py
workspace/torrent/torrent/util/...
Dieses 'torrent/torrent'-Bit scheint überflüssig zu sein, aber dies ist der Nebeneffekt dieser Standardkonvention und der Funktionsweise von Python-Importen.
Hier ist die sehr minimalistisch setup.py
(mehr Infos auf how to write the setup script):
#!/usr/bin/env python
from distutils.core import setup
setup(name='torrent',
version='0.1',
description='would be nice',
packages=['torrent', 'torrent.tests', 'torrent.util']
)
eine Quelle Distro zu erhalten, dann würde ich tun:
$ cd workspace/torrent
$ ./setup.py sdist
Diese Distribution (dist/torrent-0.1.tar.gz
) wird nutzbar sein allein, indem Sie es einfach auspacken und setup.py install
ausführen oder easy_install
von setuptools
Toolkit verwenden. Und Sie müssen nicht mehrere "Eier" für jede unterstützte Version von Python erstellen.
Wenn Sie wirklich ein Ei brauchen, müssen Sie eine Abhängigkeit von setuptools
zu Ihrer setup.py
hinzufügen, die einen zusätzlichen Unterbefehl bdist_egg
einführt, der Eier erzeugt.
Aber es ist ein weiterer Vorteil der setuptools
neben seinen Eiproduzierenden-Qualitäten, entfernt es die Notwendigkeit, Pakete in Ihrem setup.py
mit einer schönen Helferfunktion find_packages
aufzuzählen:
#!/usr/bin/env python
from setuptools import setup, find_packages
setup(name='torrent',
version='0.1',
description='would be nice',
packages=find_packages()
)
Dann ein „Ei“ zu erhalten ich werde tun:
$ cd workspace
$ ./setup.py bdist_egg
... und es wird mir das Ei Datei geben: dist/torrent-0.1-py2.6.egg
Beachten Sie die py2.6
Suffix, das ist, weil ich auf meiner Maschine Python 2.6 habe. Wenn Sie viele Leute zufriedenstellen möchten, müssten Sie für jede wichtige Python-Veröffentlichung ein Ei veröffentlichen. Du willst keine Horden von Python 2.5-Leuten mit Äxten und Speeren vor deiner Haustür, oder?
Aber Sie müssen kein Ei bauen, können Sie immer noch sdist
Unterbefehl verwenden.
Aktualisiert: Hier ist another useful page in Python-Dokumentation, die Distutils
aus Benutzersicht einführt.
Sie sollten dies wahrscheinlich mit 'setuptools' und 'distutils' kennzeichnen. –
Ich habe die Tags aktualisiert. Vielleicht wird es jetzt mehr Interesse erzeugen :) – Geo