36 Stimmen

PostgreSQL: wie man die plpythonu-Erweiterung installiert

Ich führe PostgreSQL 9.3.1 auf Ubuntu 12.04.4 aus. Ich möchte die plpython-Sprachenerweiterung verwenden, aber wenn ich versuche, sie zu verwenden, erhalte ich einen Fehler:

FEHLER: Sprache "plpythonu" existiert nicht

Wenn ich die Erweiterung erstellen möchte:

CREATE EXTENSION plpythonu

Ich bekomme FEHLER: konnte die Datei "$libdir/plpython2" nicht öffnen: Datei oder Verzeichnis nicht gefunden Nach intensiver Suche und Durchsuchen von Blog-Beiträgen habe ich versucht, zusätzliche Pakete zu installieren und alle plpython-Dateien von /usr/share/postgresql/9.1/extension nach /opt/bitnami/postgresql/share/extension zu kopieren, wo PostgreSQL sie sucht. Zumindest hat mich das an einen Punkt gebracht, an dem PostgreSQL tatsächlich die verfügbaren Erweiterungen sieht. Wenn ich ausführe:

SELECT name, default_version, installed_version FROM pg_available_extensions WHERE name LIKE('plpy*')

Ich bekomme :

    name    | default_version | installed_version 
------------+-----------------+-------------------
 plpython2u | 1.0             | 
 plpython3u | 1.0             | 
 plpythonu  | 1.0             | 

Es gibt immer noch keine plpython-Bibliotheken, die ich in /opt/bitnami/postgresql/lib sehen kann. Kann mir jemand helfen, die verbleibenden Schritte zu durchlaufen, um die Erweiterung zum Laufen zu bringen? Vielen Dank im Voraus!

23voto

andilabs Punkte 20478

Für postgres 11.2 (Debian basiert) musste ich installieren:

apt-get update && apt-get install postgresql-plpython3-11

18voto

Craig Ringer Punkte 280068

Sie verwenden ein PostgreSQL-Paket von Bitnami in /opt. Es ist nicht klar, ob Sie dies mit apt-get oder über ein Installations-Skript/Programm installiert haben, aber in jedem Fall handelt es sich nicht um dasselbe PostgreSQL wie das in dem Ubuntu postgresql Paket.

Die Installation von postgresql-plpython wird Ihnen nichts bringen, da Sie PL/Python-Unterstützung für eine andere PostgreSQL-Installation installieren als die, die Sie tatsächlich verwenden.

Sie müssen die gleiche Installationsmethode verwenden, die Sie ursprünglich verwendet haben, um das Bitnami PostgreSQL zu installieren, um PL/Python-Unterstützung hinzuzufügen, sofern verfügbar. Möglicherweise wird dies nicht von Bitnami bereitgestellt.

Andernfalls könnten Sie, wenn Sie nicht zu sehr an Bitnami's PostgreSQL gebunden sind, die empfohlenen Pakete von http://apt.postgresql.org/ verwenden.

7voto

Brian Blank Punkte 81

Ich verwende Raspbian 10 (buster) / Linux raspberrypi 4.19.97-v7+ #1294 und habe die folgenden Befehle ausgeführt, um PL/Python 3 in PostgreSQL 11.7 zu installieren.

  1. Identifizieren Sie, welche Versionen installiert werden können:

    pi@raspberrypi:~/$ sudo apt-cache search ".plpython3." postgresql-plpython3-11 - PL/Python 3 prozedurale Sprache für PostgreSQL 11

  2. sudo apt-get install postgresql-contrib postgresql-plpython3-11

  3. sudo systemctl start postgresql (oder verwenden Sie enable um dies bei jedem Start zu aktivieren, siehe Erste Schritte mit PostgreSQL unter Linux) auf einem eigenständigen Linux oder sudo service postgresql start (auf WSL2).

Andernfalls erhalten Sie den Fehler:

psql: Fehler: konnte keine Verbindung zum Server herstellen: Datei oder Verzeichnis nicht gefunden
        Läuft der Server lokal und akzeptiert Verbindungen über den Unix-Domänen-Socket "/var/run/postgresql/.s.PGSQL.5432"?
  1. sudo su - postgres

  2. psql

  3. CREATE EXTENSION plpython3u;

  4. Verifizieren Sie mit dem Befehl:

    select * from pg_language;

-1voto

Wenn Sie psql-16 mit Ubuntu verwenden, sollten Sie diesen Befehl verwenden:

sudo apt install postgresql-plpython3-16

Es hat bei mir funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X