Python – pip Pythonpakete aus Datei installieren

Um mit einem Python Projekt umzuziehen ist es nötig auf dem neuen Zielsystem oder im neuen Virtual Environment die gleichen Python Pakete bzw. Vorraussetzungen zu schaffen.

Installierte Python Pakete anzeigen

Um einen Überblick über die aktuell installierten Python Pakete zu erhalten können wir mit den Befehlt pip freeze eine Ausgabe der installierten Paket erhalten.

In diesem Beispiel sind folgende Pakete installiert.

Die Ausgabe der Paketliste leiten wir nun in die Datei requirements.txt um.

Requirements mit pip aus Datei installieren

Danach können wir mit dem Befehlt pip install -r Dateiname die Pakete in der neuen Umgebung installieren. Mit dem Parameter -r weisen wir pip an die Abhängkeiten aus der Datei zu lesen.

Als Ausgabe erhalten wir den Installationsdialog und eine abschließende Zusammenfassung. „Python – pip Pythonpakete aus Datei installieren“ weiterlesen

Python – Flask Cache URL mit Query String als cache_key

Python Micro-Framework Flask
Python Micro-Framework Flask

Wer bei dem Python Microframework Flask die Cache-Funktion für URLs verwendet wird bemerkt haben, dass die Request-Argumente bzw. der Query String per default nicht beachtet wird und so bei verschiedenen Request-Argumenten immer die selbe Seite aus dem Cache ausgeliefert
wird.

Da dies oft nicht gewollt ist, muss eine Möglichkeit gefunden werden den Query String in den Cache_Key einzubeziehen.

Die Cache-Funktion von Flask bietet die Möglichkeit den key_prefix selbst zu definieren. Dass dies auch mit einer anderen Funktion möglich ist, wurde sehr schlau gedacht.

Wir erstellen uns dazu eine eigene Funktion make_cache_key. Dieser übergeben wir die Parameter von dem Seitenaufruf und bekommen einen gehashten Wert aus unseren request.path und den request.args.

Nun passen wir den key_prefix der Cache-Funktion an. „Python – Flask Cache URL mit Query String als cache_key“ weiterlesen

Linux – Installation von Ansible unter CentOS / Ubuntu

Ansible ist ein tooles Tool für die Konfiguration, Administration, Automatisierung und Softwareverteilung auf verschiedenen Linux-Systemen. Die Verwaltung der einzelenen Systeme erfolgt über SSH, somit sind keine zusätzliche Software notwendig. Konfiguriert wird das Ganze in Textform mit YAML. In diesem Tutorial wird die Installation von Ansible Schritt für Schritt beschrieben.

Ansible Installation

Logo von ansibleUm ansible auf unseren System zu installieren gibt es verschiedene Möglichkeiten. Zu einem kann ansible ganz normal aus dem Repository der Distribution installiert werden. Ausserdem können wir ansible auch mit pip in einem Python Virtual Environment installieren.

Installation von Asible unter Centos / RHEL

Unter CentOS benötigen wir ein aktiviertes EPEL-Repository. Wie man dies konfiguriert und aktiviert wurde bereits in einen anderen Tutorial EPEL-Repo installieren behandelt.

Ansible selbst installieren wir dann ganz einfach wie gewohnt mit yum.

Dazu werden noch ein paar weitere Python-Abhängigkeiten aufgelöst und installiert.

Anschliessend steht uns nun ansible auf dem System zur Verfügung

„Linux – Installation von Ansible unter CentOS / Ubuntu“ weiterlesen

CentOS 7 – Python 3.5 und virtualenv installieren

Python 3.5Wer endlich mal die alten Zöpfe der Python-Entwicklung abschneiden möchte sollte seine Projekte so langsam auf Python 3.x umstellen. CentOS 7 bringt per default Python in der Version 2.7.5 mit. Wer auf eine aktuelle Version von Python wechseln möchten kann dies trotzdem ohne Probleme auch unter CentOS 7.

Dieses Tutorial zeigt wie man unter CentOS 7 Python 3.5 optional installiert. Die gezeigte Lösung kann auch ohne Probleme für Python 3.4 angewendet werden.

Vorraussetzung für die Installation von Python 3.5 ist eine lauffähige CentOS 7 Installation. Die Installation von Python 3.5 erfolgt aus dem IUS-Repository. Wie dies eingebunden wird habe ich schon in dem Tutorial IUS Repo installieren gezeigt, daher wird dies hier nur ganz kurz erklärt.

Einbinden des IUS-Repositorys

Der Vorteil der Installation von Python 3.5 aus dem Repository gegenüber der „selbstgebauten Version“ ist, dass wir regelmäßig Updates aus dem Repo erhalten. Eine manuelle Pflege der Installation ist also nicht mehr nötig.

Mit folgenden Befehl binden wir das IUS-Repository ein.

Nachdem die Installation abgeschlossen ist können wir uns die optional verfügbaren Python-Versionen anschauen.

Wie die Ausgabe zeigt stehen uns nun die Versionen Python 3.4 und Python 3.5 zur Verfügung.

Python 3.5 unter CentOS 7 installieren

Der Rest ist nun eigentlich ganz einfach. Die gewüschte Version installieren wir nun wie gewohnt mit yum. In unserem Fall ist es das Paket python35u und ein paar weitere Pakete für unser Python Virtual Environment.

Nachdem auch diese Installation abgeschlossen ist können wir mit der Bereitstellung unseres Python Virtual Environment beginnen.

Virtual Environment für Python 3.5 erzeugen

Um ein Virtual Environment für Python 3.5 bereitzustellen müssen wir zuerst für unser installieres Python 3.5 virtualenv installieren. Das geht am einfachsten mit pip. Allerdings müssen wir dies passend zu unserer Python Version wählen. „CentOS 7 – Python 3.5 und virtualenv installieren“ weiterlesen

Python – Cronjobs im Virtualenv per Wrapper-Script

Wenn man einem Python-Script per Cron in einen Virtual Environment starten möchte bringt dies ein paar Probleme mit sich. Das Virtual Environment muss vorher aktiviert werden und dann erst das Script ausgeführt werden.

Man kann dies nun umständlich für jedes Script separat erledigen oder mach baut sich einen universellen Wrapper.

Der Wrapper legt man einfach in sein Homedir und übergibt diesem per Parameter das auszuführende Python-Script.

Python Virtualenv Wrapper

Wir erstellen eine Datei cron_wrapper.sh im HomeDir des Users.

Per Cronjob kann diese nun folgendermaßen aufgerufen werden.

„Python – Cronjobs im Virtualenv per Wrapper-Script“ weiterlesen

Python 2.7 unter CentOS 6 installieren

python_2_7_centos
Python 2.7 auf Centos 6

CentOS 6 bringt die Python Version 2.6.6 mit. Wie man auf eine neuere Version updaten kann ohne die alte Version vom System zu löschen beschreibt dieser Artikel.

Vorbereitung – Installation der Development Tools

Als Erstes benötigen wie wieder die notwendigen Entwicklungswerkzeuge. Diese werden per groupinstall von YUM installiert. Zusätzlich benötigen wir noch ein paar Entwickler-Pakete für die Installation von Python 2.7.

„Python 2.7 unter CentOS 6 installieren“ weiterlesen