Ich versuche, einige Python-Pakete einzurichten, die eine gemeinsame Gruppe von "Dienstprogrammen" teilen, aber in der Lage sein müssen, sie als separate "Pakete" zu verteilen. Angenommen, die folgende Struktur:Verteilen mehrerer Pakete mit setup.py für Python
/packages
|-setup.py
|-__init__.py
|-MANIFEST.in
|-com
| |-__init__.py
| |-company
| | |-__init__.py
| | |-subdir1
| | | |-__init__.py
...
|-utilities
| |-__init__.py
| |-utils1.py
| |-utils2.py
| |-...
|-package1
| |-__init__.py
| |-package1_1.py
| |-package1_2.py
| |-...
|-package2
| |-__init__.py
| |-package2_1.py
| |-package2_2.py
| |-...
Ich mag wäre in der Lage sein setup.py zu verwenden für den Bau entweder package1 oder Package2 beide die gleichen Dienstprogramme enthalten sollte.
Alle Tutorials, die ich gefunden habe, verwenden ein einfaches einzelnes Projekt, das die Verwendung einer einzelnen setup.py ziemlich einfach macht. Aber wie erstelle ich mehrere verschiedene Pakete aus dem gleichen Verzeichnis (es ist ein Git Repository) Struktur? Im Moment bin ich mit package1_setup.py package1 zu bauen, die ähnlich aussieht:
from setuptools import setup,find_packages
import sys, os
version = '0.1'
setup(name = 'package1',
version = version,
description = 'Package 1',
author = 'Rob Marshall',
author_email = '[email protected]',
url = None,
packages = ["package1","utils","com"],
include_package_data = True,
zip_safe = False,
entry_points = {
'console_scripts':[
'tool1 = package1.package1_1:main',
'tool2 = package1.package1_2:main',
],
},
install_requires = [
'boto >= 2.40',
'python-swiftclient >= 3.2.0',
'fabric >= 1.13.0',
],
)
Also, wenn ich package1 bauen will ich tun:
% python package1_setup.py sdist
Welche eine installierbare Quellpaket erstellt, sondern etwas "peinlich", weil die setup.py Paket1_setup.py heißt. Nicht, dass das tragisch wäre, aber ich habe mich gefragt, ob es einen besseren Weg dafür gibt.
Danke,
Rob