Wir haben eine gemeinsame Python-Installation für alle unsere Systeme, um sicherzustellen, dass jedes System die gleiche Python-Installation hat und um Konfigurationsprobleme zu vermeiden. Diese Installation befindet sich auf einem freigegebenen Laufwerk. Wir haben auch mehrere Plattformen, die diese Installation teilen. Wir umgehen plattformspezifische Dateien, indem wir die Option --exec-Präfix configure beim Kompilieren von Python setzen.Wie kann ich mit Python Eiern für mehrere Plattformen an einem Ort umgehen?
Mein Problem ist, dass ich jetzt ein Ei mit easy_install (oder anders), die plattformabhängig ist, installieren möchte. easy_install versetzt das Ei in das Verzeichnis site-packages des plattformunabhängigen Teils der Installation. Der Name des Eies hat die Plattform darin, also sollte es keinen Konflikt geben. Aber Python lädt nur den ersten, den es findet. (Unter Solaris könnte es also versuchen, das Linux-Ei zu laden). Das Ändern der easy-install.pth-Datei kann ändern, welche Datei gefunden wird, aber das ist ziemlich nutzlos.
Ich kann die .egg-Dateien in ein plattformabhängiges Paketverzeichnis verschieben und dann pkg_resources.require() verwenden, um sie zu laden (oder den Pfad manuell anzupassen). Aber es scheint, als ob ich nicht müsste, da die Plattform im Namen des Eies ist.
Gibt es eine allgemeinere Möglichkeit, dass ich sicherstellen kann, dass Python das Ei für die richtige Plattform lädt?
Enthält das Ei C-Erweiterungen oder ist es reine Python? – codeape
Ja, es gibt eine C-Erweiterung. Andernfalls wäre das egal, weil der Code nicht plattformabhängig wäre. Insbesondere ist es das PyPerforce-Modul, falls Sie neugierig sind. – Philbert