Python wird mit der Veröffentlichung von Analysepaketen wie chainer und tensorflow immer mehr zu einem Datenanalysetool. Es zieht die Aufmerksamkeit auf sich. Es gibt eine Funktion namens "PL / Python", die Python als Funktionsimplementierungssprache von PostgreSQL verwenden kann.
Standardmäßig verwendet PL / Python das System Python. Wenn Sie jedoch den Python des Systems nicht verschmutzen möchten, können Sie die Python-Umgebung möglicherweise mit pyenv trennen und das Analysepaket ablegen.
Daher habe ich untersucht, wie Python verwendet wird, das von pyenv für die PL / Python-Ausführungsumgebung installiert wurde.
PL / Python verweist auf libpython ~~ .so. Da die gemeinsam genutzte Bibliothek nicht durch normale "pyenv install" installiert wird Mach Folgendes:
CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.10
Dies ist auf der Pyenv-Seite in Ordnung
PostgreSQL wird aus dem Quellcode kompiliert. https://github.com/postgres/postgres Von hier aus können Sie "Git Clone" machen.
Gehen Sie dann mit configure
wie folgt vor.
./configure --prefix=/home/user/pgsql/pgsql9_5 --with-python=yes PYTHON=/home/user/.pyenv/versions/2.7.10/bin/python
Sie können "--prefix" hinzufügen oder nicht.
Wichtig ist
--with-python=yes
Wann
PYTHON=/home/user/.pyenv/versions/2.7.10/bin/python
Wenn Sie nicht "--with-python = yes" hinzufügen, wird PL / Python überhaupt nicht kompiliert.
PYTHON = / home / user / .pyenv / version / 2.7.10 / bin / python
wurde mit pyenv installiert
Gibt den Speicherort der Python-Binärdatei an.
PL / Python wird dann kompiliert, um Pyenvs Python zu verwenden.
Wenn Sie configure
ausführen, wird die folgende Beschreibung in die generierteMakefile.global
geschrieben.
python_includespec = -I/home/user/.pyenv/versions/2.7.10/include/python2.7
python_libdir = /home/user/.pyenv/versions/2.7.10/lib
python_libspec = -L/home/user/.pyenv/versions/2.7.10/lib -lpython2.7
Wenn Sie danach PostgreSQL "make; make install" machen, wird die Ausführungsumgebung von PL / Python von pyenv Python installiert.
Ich habe das gesamte PostgreSQL kompiliert, aber sollte ich nur PL / Python kompilieren?
Recommended Posts