Frage

Wenn es um die Organisation von Python-Modulen kommt, mein Mac OS X-System ist ein Chaos. Ich habe Pakete rund um überall auf meiner Festplatte und kein bestimmtes System liegen sie zu organisieren.

Wie halten Sie alles überschaubar?

War es hilfreich?

Lösung

Mein Rat:

Andere Tipps

Neben PEP8 und easy_install, sollten Sie virtualenv überprüfen. Virtualenv können Sie mehrere unterschiedliche Python-Bibliothek Bäume haben. Bei der Arbeit verwenden wir mit einer Bootstrap-Umgebung virtualenv auf eine Entwicklung / Produktionsumgebung schnell einrichten, wo wir alle in sync w.r.t Bibliothek Versionen sind etc. Wir Bibliothek Upgrades allgemein koordinieren.

Es gibt mehrere Familien von Python Baugruppen.

  1. Die Sachen, die mit Python kommt. Diese kümmert sich um sich selbst.

  2. Die Sachen, die Sie mit easy_install bekommen. Auch dies kümmert sich um sich selbst.

  3. Die Pakete, die Sie auf eine andere Weise zu erhalten haben, entweder als Tarball oder SVN-Kassen. Erstellen Sie einen Ordner Components. Legen Sie die Downloads oder die SVN ist da drin zuerst. Jedes Mal. Haben installiert von dort aus.

  4. Die Pakete, die Sie geschrieben haben, die wiederverwendbar sind. Ich habe einen Projects Ordner mit jedem Projekt in diesem Ordner. Wenn das Projekt eine sehr wiederverwendbar Sache ist, hat es eine setup.py und ich laufe eigentlich die Installation, als ob ich es heruntergeladen. Ich habe nicht viele von diesen, aber ein paar. Einige von ihnen könnten Open-Source-Projekte werden.

  5. Die endgültigen Anwendungen, die Sie schreiben. Ich habe einen Ordner in Projects mit jedem dieser Top-Level-Anwendungen. Dies sind in der Regel groß, weitläufig Dinge (wie Django Sites) werden und nicht setup.py haben. Warum? Sie sind oft ziemlich komplex mit nur wenigen Server-Installationen zu verwalten, und jeder dieser Server-Installationen ist einzigartig. Diese stützen sich im Allgemeinen auf PYTHONPATH ihre Teile zu identifizieren.

Das gemeinsame Thema Hinweis. Entweder sie sind Komponenten, die Sie heruntergeladen oder sie sind Projekte, die Sie gerade arbeiten.

Auch ich halte diese getrennt (in einem Umfang) vom Client aus. Ich habe einen Master-Verzeichnis von Client-Ordner, von denen jede Projekte hat und jedes Projekt hat Verkaufs- und Lieferbedingungen. Nicht alle Projekte haben sowohl Verkaufs- und Lieferbedingungen.

Vielleicht PEP8 und easy_install können Ihnen helfen?

Ich halte alle die Quelle für meine Pakete innen ~ / Packages /, und dann mache ich ein Standard mit „python2.5 setup.py install“ installiert werden kann. Dies wirft in (für mich) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Für die Entwicklung meiner eigenen Software, habe ich Aliase einrichten, um zwischen trunk / branches / 1.0, usw., von Pre-prending auf PYTHONPATH. (Ich habe ‚setup.py build_ext --inplace‘ in jedem dieser Verzeichnisse laufen, bevor sie richtig importiert.)

Es ist erwähnenswert, dass python2.6 eine pro-Benutzer-site-packages Verzeichnis , die Sie bequemer finden.

Die "Module" Python-Dokumentation ist ein nützliche Leitfaden für Code der Organisation, insbesondere die „Pakete“ Abschnitte

Mein Rat ist, zu versuchen, alles in Ihrem Website-Paketen Verzeichnis (s) zu setzen, es sei denn Sie haben einen guten Grund, nicht zu. Und ich versuche easy_install zu vermeiden, weil ich finde, dass es dazu neigt, meine sys.path mit Ei Standorten Cruft, aber das ist nur meine Meinung. Einige Leute finden es nützlich.

Wenn Sie viele Programme, die verschiedene Bibliotheken verwenden, die miteinander in Konflikt geraten können, können Sie auch wollen eine href überprüfen <= „http://pypi.python.org/pypi/virtualenv“ rel = "nofollow noreferrer "> virtualenv .

lief gerade auf dieser Seite von einer anderen Frage Stackoverflow: http://infinitemonkeycorps.net/docs/pph/ Dies richtet sich mehr als nur Modul Platzierung, aber wenn Sie es schreiben platzieren, wie Sie leicht Dokumentation verarbeiten kann, Prüfung und Verteilung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top