Python Pakete

Achtung!

Alle Dateisysteme, die von Kunden beschrieben werden können, sind mit dem noexec Flag gemounted. Das bedeutet, dass virtualenv nicht benutzt werden kann. Der nachfolgende Text erklärt, wie Sie dennoch eigene Pakete installieren können

Siehe auch Technische Limitationen

Um Python Pakete zu installieren, sollten Sie als erstes den PYTHONPATH vorbereiten, in welchen die Pakete installiert werden sollen:

$ mkdir -p $HOME/example.com/lib

Erstellen Sie in Webconf > Python eine neue Applikation und tragen unter dem Reiter Site directories dieses Verzeichnis ein:

Pfad = /srv/home/webNNNN/example.com/lib

Anschließend können Sie die neu erstellte Applikation auf der Shell aktivieren. Angenommen die Applikation trägt den Namen beispiel:

$ pxenv beispiel

Jetzt können Sie Python Pakete wie mit pip oder easy_install installieren. Sie müssen lediglich darauf achten das Zielverzeichnis anzugeben, wenn Sie diese Befehle benutzen:

$ pip install --target $HOME/example.com/lib (...)

$ easy_install --install-dir $HOME/example.com/lib (...)

Um zu testen, ob die Installation geklappt hat, können Sie eine interaktive Python Shell starten und testen ob sich das Paket laden lässt. z.B.:

$ pxenv beispiel
$ pip install --target $HOME/example.com/lib Django
$ python
>>> import django
>>>

Wenn Sie keinen ImportError zu sehen bekommen, hat es funktioniert und das Paket ist installiert.

Achtung!

Die noexec gemounteten Dateisysteme führen auch dazu, dass keine Pakete installiert werden können, welche nativen Code enthalten. Darum haben wir alle Datenbanktreiber, Pillow und viele andere Pakete auf unseren Systemen vorinstalliert, die Sie in Webconf bei der jeweiligen Applikation auswählen können. Falls Sie weitere Pakete benötigen, kontaktieren Sie uns bitte.

Tipp für Ihre requirements.txt

Da sich Pakete mit nativem Code nicht installieren lassen, empfiehlt es sich die requirements.txt in zwei Teile aufzuteilen:

requirements-live.txt

Enthält nur Pakete die keinen native Code enthalten:

Django>=1.8,<1.9

requirements.txt

Enthält nur Pakete mit native Code und includiert die requirements-live.txt

-r requirements-live.txt
psycopg2>=2.6,<2.7
Pillow>=2.8,<2.9

Somit is es möglich auf dem Server requirements-live.txt zu installieren und die requirements.txt für Ihre lokale Entwicklungsumgebung zu verwenden.