44.11. Переменные окружения #
Некоторые переменные окружения, воспринимаемые интерпретатором Python, тоже могут влиять на поведение PL/Python. При необходимости их нужно установить в среде основного серверного процесса PostgreSQL, например, в скрипте запуска. Множество доступных переменных окружения зависит от версии Python; за подробностями обратитесь к документации Python. На момент написания этой документации, на поведение PL/Python влияли следующие переменные окружения, при наличии подходящей версии Python:
PYTHONHOMEPYTHONPATHPYTHONY2KPYTHONOPTIMIZEPYTHONDEBUGPYTHONVERBOSEPYTHONCASEOKPYTHONDONTWRITEBYTECODEPYTHONIOENCODINGPYTHONUSERBASEPYTHONHASHSEED
(Похоже, что вследствие тонкостей реализации Python, не зависящих от исполнителя PL/Python, некоторые переменные окружения, перечисленные на странице руководства man python, действуют только в интерпретаторе для командной строки, но не во встраиваемом интерпретаторе Python.)
44.11. Environment Variables #
Some of the environment variables that are accepted by the Python interpreter can also be used to affect PL/Python behavior. They would need to be set in the environment of the main PostgreSQL server process, for example in a start script. The available environment variables depend on the version of Python; see the Python documentation for details. At the time of this writing, the following environment variables have an affect on PL/Python, assuming an adequate Python version:
PYTHONHOMEPYTHONPATHPYTHONY2KPYTHONOPTIMIZEPYTHONDEBUGPYTHONVERBOSEPYTHONCASEOKPYTHONDONTWRITEBYTECODEPYTHONIOENCODINGPYTHONUSERBASEPYTHONHASHSEED
(It appears to be a Python implementation detail beyond the control of PL/Python that some of the environment variables listed on the python man page are only effective in a command-line interpreter and not an embedded Python interpreter.)