Oprócz innych zmiennych środowiskowych, takich jak PGDATA
w skrypcie powłoki (pg_service.sh), ustaw PYTHONPATH='/path/to/python:/path/to/your/module'
Np. kot /Użytkownicy/postgres/pg_service.sh
export PGDATABASE=postgres
export PGUSER=postgres
export PGPORT=5432
export PATH=/Library/PostgreSQL/11/bin:$PATH
export PGLOCALEDIR=/Library/PostgreSQL/11/share/locale
export PYTHONUSERBASE=/Users/postgres/packaging_tutorial
export PYTHONPATH=/Library/edb/languagepack-11/Python-3.6:$PYTHONUSERBASE
pg_ctl -D /Library/PostgreSQL/11/data -l /Users/postgres/logfile $1
Uruchom serwer:
> sudo -u postgres /Users/postgres/pg_service.sh start
waiting for server to start.... done
server started
/Users/postgres/packaging_tutorial/example_pkg/__init__.py
:
def retpy3():
return 7/5
funkcja pg:
CREATE OR REPLACE FUNCTION expy3()
RETURNS text
LANGUAGE plpython3u
AS $$
import example_pkg
return example_pkg.retpy3()
$$;
Wyjście
psql -c 'select * from expy3()';
expy3
--------
1.4