PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Модулът не е намерен при импортиране на пакет на Python в рамките на процедура plpython3u

В допълнение към други променливи на средата като PGDATA в шел скрипт (pg_service.sh), задайте PYTHONPATH='/path/to/python:/path/to/your/module'

напр. cat /Users/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

Стартирайте сървъра:

> 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

pg функция:

CREATE OR REPLACE FUNCTION expy3()
RETURNS text
LANGUAGE plpython3u
AS $$
import example_pkg
return example_pkg.retpy3()
$$;

Изход

psql  -c 'select * from expy3()';
 expy3
--------
 1.4



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. База данни по подразбиране с име postgres на Postgresql сървър

  2. Конфигурация на Puma Cluster на Heroku

  3. Актуализирайте множество редове в таблица от друга таблица, когато съществува условие

  4. Как да съпоставим не нула + не празно?

  5. Разделяне на списък в Postgres 12