Berühren Sie nicht meinen Kram

Eine Sache, die ich hasse über distutils (ich denke,er ist der böse, der dies tut) ist, dass es änderungen der shebang-Zeile. In anderen Worten, die mehr rational und Umgebung-vars beschlossen Schrift

#!/usr/bin/env python

wird magisch umgewandelt

#!/whatever/absolute/path/is/my/python

Dies ist auch mit grok: ich grokproject in einem virtualenv zu starten mein Projekt, aber jetzt kann ich Sie nicht verschieben Sie die Entwicklung Verzeichnis um mehr, denn es stellt die absoluten Pfade in der shebang-Richtlinie.

Der Grund, warum, den ich Frage, ist zweierlei

  • Ich will es bewegen, weil ich begonnen, in einem Verzeichnis (Experimente) und jetzt will ich verschieben Sie Sie in einem richtigen Weg, aber ich konnte es nicht tun. So habe ich eine neue virtualenv und grokproject und kopierte meine Dateien. Das das Problem behebt, aber lässt meine Neugier für eine rationale Lösung unzufrieden. Insbesondere, wenn der Verweis auf die virtualenv python-interpreter war relativ, das problem wäre nicht vorhanden gewesen sein in den ersten Platz. Sie wissen, das layout der virtualenv, und Sie können sich auf die virtualenv python leicht.
  • Der zweite Grund ist, dass ich möchte in der Lage sein, um scp die virtualenv zu einem anderen computer und führen Sie es dort ohne Probleme. Dies ist nicht möglich, wenn Sie hardcoded Pfade.
  • Da finde ich eher nervig, dass alle meine installierten Zeug hat eine sehr starke und schmerzhafte Abhängigkeit gegen einen bestimmten Pfad von meinem Dateisystem, insbesondere, wenn eine alternative vorhanden ist.
  • So dass Sie wollen, zu bewegen, nur weil es nicht offensichtlich ist, wie? 🙂 Oooookay...
  • Hinzugefügt zu der Frage.
  • Ich zu kämpfen mit wie ist das zu erklären, weil es so offensichtlich nach einer Weile. 🙂 Der Weg, dies zu tun ist, erstellen Sie ein python-Paket (was Sie offensichtlich getan haben) und halten sich in einem Versionskontrollsystem, wie z.B. subversion. Jedes mal, wenn Sie wollen, installieren Sie es überall, Sie haben zu laufen setup.py. Vor, dass es einfach nicht installiert. Sie können sich nicht bewegen-Installationen zwischen verschiedenen python-Installationen und Maschinen, das wird einfach nicht funktionieren.
  • sorry. Ich erkannte jetzt, dass ich schrieb es falsch das erste mal, ging dann zurück und sagte zu mir selbst: "ich schrieb es falsch", und fand die fixed version. Ich wollte nicht sehen, jemand anderes es fest, ich nahm an, es war meins und ich hatte einfach zu tauschen von der aktuellen form auf die andere form um, um es zu korrigieren. Mit diesem im wesentlichen habe ich es rückgängig gemacht.
  • Und Sie Dosen Kopie einer virtualenv zu einer anderen Maschine. Es macht einfach keinen Sinn. Das wird nur funktionieren, wenn beide Maschinen konfiguriert sind genau gleich (und in diesem Fall wird dies auch funktionieren).
  • ja, aber in diesem Fall ist es anders. Das, was ich bin "installieren" ist eine virtuelle Umgebung, die sein sollte, in sich geschlossene und wahrscheinlich verschoben werden. Die Installation ist eine andere Geschichte, aber wenn ich bereitstellen einer virtualenv, oder das layout einer grokproject zum ersten mal, ich bin nicht etwas zu installieren. Ich bin die Bereitstellung von meine Entwicklungsumgebung.
  • Ich lese Ihre Antwort hier: stackoverflow.com/questions/1130402/... . Aus dieser Sicht haben Sie Recht. Trotzdem, ich verstehe nicht den Grund, warum meine Entwicklungsumgebung müssen so streng sein, auf die absolute position sich innerhalb des Dateisystems.
  • 1. Der Zweck der buildout ist, so können Sie leicht die Umgebung replizieren. Kopieren einer ganzen Umgebung nach, die Sie ausgeführt haben buildout macht einfach keinen Sinn. Es Niederlagen der ganze Zweck der buildout, und ist wahrscheinlich ein Fehler. 2. Und Sie sind installieren von Sachen. Sie installieren die python-Module und grok, und alles andere, was sich in Ihrer virtuellen python. Dies geschieht, wenn Sie führen Sie das buildout. 3. Die development-Umgebung ist streng auf die position einfach, weil es gibt keinen Grund, es nicht zu sein. Alles, was Sie tun müssen, ist, verschieben Sie es erneut bootstrap und buildout, und Sie sind fertig.
  • Es lohnt sich auch zu bemerken, dass virtualenv und buildout teilweise macht ähnliches. Buildout wird nie zu installieren in der system python, aber installiert alle Bibliotheken lokal, und dadurch isolieren Sie die wichtigsten python, von der buildout. Mit virtualenv ist daher inly nützlich, wenn Sie wollen, auch die Isolierung der buildout von der Haupt-python.

Schreibe einen Kommentar