distutils module und das Einbetten von Nicht-Moduldateien

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi

habe da eine Frage zum Gebrauch von distutils. Genauer: Wie binde ich denn Dateien in mein Wunschpaket ein, die keine Pythonmodule darstellen, sondern bloße zusätzliche Informationen beinhalten? Gemäß Dokumentation sollte das doch folgendermaßen gehen:

Code: Alles auswählen

#(in setup.py)
from distutils.core import setup
setup(name="packagename", version="0.1a", author="me",
      author_email="this_is@no.email_directory", url="already_posted",
      description="blah_blah",
      packages= ["packagedirectory","packagedirectory.src"],
      data_files=[("packagedirectory",["README"])]
      )
Gibt mit dem Aufruf "$ python setup.py sdist --formats=gztar,zip" folgende Warnungen:

Code: Alles auswählen

warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt
"README" taucht auch tatsächlich nicht im Paket auf. Der Rest wird dann aber brav gepackt, so wie es sein soll.

Habe verschiedene Variationen probiert das "packagedirectory" relativ anzugeben, jedes Mal ohne Erfolg. Was mache ich falsch? Oder lieber: Wie muß ich es richtig machen, wenn ich "README" oder andere Dateien in meinem tar.gz-Paket sehen möchte?

Die Pfadstruktur ist wie folgt:

/root mit setup.py
/root/packagedirectory mit packagename.py und README
/root/packagedirectory/src mit ein paar anderen Modulen (u. a. Dookies Linebuffer ;-) )

Zusatzinformation: Ich verwende MacOSX 10.3.4 und Python 2.3.3. (Habe das auch mal auf der SGI am Arbeitsplatz probiert, wo Python 2.3.4 installiert ist: Gleiches Ergebnis, also Update wird nicht helfen - nehme ich mal an.)

Vielleicht ist diese Frage naiv, aber meine Erfahrungen mit distutils sind nahe Null. Also schon mal vielen Dank an euch, die helfen,
Christian
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ok, da hier ja solch eine überwältigende Diskussion entbrand ist ;-) (wohl einfach kein Bedarf für dieses Modul?), habe ich mich entschlossen eine Sünde zu begehen: Ich habe diese Frage nochmals in der Tutor Mailingliste gestellt (tutor@python.org).

Danny Yoo (http://hkn.eecs.berkeley.edu/~dyoo/) hat mich auf folgenden Teil der Dokumentation gestossen: http://docs.python.org/dist/source-dist ... 0000000000 .
Da steht es nämlich drin :oops: . Ich Depp hatte das erst nur halb überlesen und dann nicht recht verstanden.

Ich finde aber das Manual an dieser Stelle auch nicht gut genug (lies: für Doofe wie mich) geschrieben und habe vorgeschlagen mal ein paar Beispiele zu schreiben, die dann an docs@python.org gehen sollen. Über Vorschläge (und Beispiele) würde ich mich sehr freuen. Oder findet jemand eher, daß ich das schön bleiben lassen sollte, weil die Documentation hier eher als vollständig betrachtet werden muß?

Gruß,
Christian
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

CM hat geschrieben:Ok, da hier ja solch eine überwältigende Diskussion entbrand ist ;-) (wohl einfach kein Bedarf für dieses Modul?) ...
Hi so leid es mir tut, das sagen zu müssen, aber das ist bei mir der Fall. Ich habe noch nie mit disutils gearbeitet und dementsprechend erst recht keine Erfahrung... das nur, damit du nicht denkst es bestünde kein Interesse zu dem Thema, aber beitragen dazu kann ich leider nix :? ... Vielleicht lässt sich aber was aus den Sourcefiles bei SF-Projekten dazu was rauslesen, schließlich müssen die ja auch irgendwie erstellt werden, oder?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi Milan

tut mir leid, ich hatte Deine Antwort völlig übersehen. Ich sitze dran ein paar Beispiele zusammenzufassen und Kommentare zu schreiben. Aber das wird sich noch ein Weilchen hinziehen, weil im Moment einfach andere Dinge Priorität haben (wie so oft ...).

Was die sourcefiles angeht: Nein, das geht nur sehr eingeschränkt (oder ich habe auch da wieder was übersehen), weil weder das MANIFEST.in noch der Aufruf des setup-Skripts mitgeliefert werden. Was man ggf. sieht ist das setup-Skript. Aber dieses gibt nur wenige die Informationen darüber preis wie der Aufruf gewesen sein könnte.
Da das Modul nicht so furchtbar viele Varianten erlaubt ist meine Devise einfach: Ausprobieren was wie geht. Wie gesagt: Eigentlich steht das auch in der Anleitung. Aber ich finde es halt an dieser Stelle reichlich kryptisch.

Falls irgendwo akuter Bedarf besteht: Inzwischen kenne ich mich ETWAS besser aus ...

Gruß,
Christian
Antworten