簡體   English   中英

如何升級 PL/Python 的 Python 版本

[英]How to upgrade Python version for PL/Python

我有一個帶有 Postgres 10 服務器的 Ubuntu 18.04,運行 Python 3.5.2,PL/Python 功能運行良好。

如何將 PL/Python 升級到 3.8.0

我使用 pyenv 在用戶“postgres”下安裝 3.8.0,我檢查了 python 版本已經 3.8.0,我什至將 /etc/postgresql/10/main/environment 更新為

PYTHONPATH= '/var/lib/postgresql/.pyenv/shims/python3'

但是當我運行 PL/Python 函數時

CREATE FUNCTION ptest ()
  RETURNS text
AS $$
  import sys
  return sys.version
$$ LANGUAGE plpython3u;

結果還是3.5.2

PostgreSQL 的 plpython 擴展需要針對正確的 python 頭文件進行編譯。 我懷疑頭文件在 python 3.5 和 3.8 之間是二進制兼容的。 您要么需要自己重新編譯 PostgreSQL 擴展(或所有 PostgreSQL),要么找到一個包含正確編譯的軟件包的軟件包(我懷疑您會找到)。

簡單的答案是,“不要這樣做”。 你為什么要這樣做? 如果我願意針對最前沿的 Python 構建自己的 Python,我可能會使用最前沿的 PostgreSQL,而不是兩年前的版本。

要回答為什么.... 兩個原因:

  1. Python 3.5 已停產 - https://www.python.org/downloads/release/python-350/
  2. 一些模塊需要> 3.5

我同意如果 Postgresql - PL/Python 團隊尚不支持,您不應該“強制”升級。

為了解決這個問題...我見過一些人在 PL/Python 中使用虛擬環境。 如果可以,盡量避免走那條路,而是尋求 Postgresql PL/Python 團隊的直接支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM