![](/img/trans.png)
[英]How to install PL/Python on PostgreSQL 9.3 x64 Windows 7?
[英]Install PL/Python on Windows for PostgreSQL 12
我一直在為一個項目研究 FHIR,我們正在使用 PostgreSQL 作為數據庫。 在閱讀文檔時,我開始了解 PL/Python 並決定試一試,但我無法安裝 python 擴展。
當我運行命令CREATE EXTENSION pypthon3u;
我收到以下錯誤
Could not load library "C:/Program Files/PostgreSQL/12/lib/plpython3.dll": The specified module could not be found.
我已經檢查了這個SO 答案,但它無濟於事。
我的 PostgreSQL 版本: PostgreSQL 12.2,由 Visual C++ build 1914 編譯,64 位
安裝的 Python 版本: 3.7.7(64 位)
操作系統信息: Windows 10 企業版1909操作系統內部版本18363.657
對我來說,它看起來像是不正確的 Python 版本,但我正在安裝 python 3.7.* 版本,根據安裝目錄內的doc\installation-notes.html
中指定的方式編譯 PostgreSQL。
任何幫助將不勝感激。
即使您使用 EDB 安裝程序的 Stack Builder 安裝 Python,您仍然必須按照說明“確保它們包含在啟動數據庫服務器的 PATH 變量中”。 我必須在系統級別執行此操作,因為我找不到為單個服務設置 PATH 的方法。
然后你還需要設置 PYTHONPATH ,這似乎沒有記錄。
所以我最終將c:\edb\languagepack\v1\Python-3.7
添加到 PATH 並使用c:\edb\languagepack\v1\Python-3.7\Lib
創建 PYTHONPATH 。
我必須添加包含 plpython3.dll 的目錄做系統/用戶變量(windows)。
我也在嘗試同樣的方法。 雖然我不是專家,而且我的錯誤有點不同,但這里有幾件事需要檢查:
share\extension\
下,應該有plpython3u.control
和plpython3u--1.0.sql
能夠做CREATE EXTENSION plpython3u;
lib\
下,應該有一個plpython3.dll
。 這可能是在上述步驟之后創建的。lib\
在您的PATH
中。PYTHONHOME
應該在系統/用戶環境中設置,或者應該在服務器啟動之前設置。 似乎版本沒有設置這個名稱那么重要。 plpython3.dll
似乎在尋找一個python39.dll
但我可以在 3.8 安裝中使用它。我使用了 Postgres 的壓縮版本,所以下面是我運行服務器的方式。
set PATH=%PATH%;d:\pgsql\bin\;d:\pgsql\lib\
set PYTHONHOME=c:\DevTools\Python\Python38
pg_ctl -D d:\pgsql\pgdata -l logfile start
PS:沒有PYTHONHOME
,服務器崩潰。 服務器本身或psql
重新啟動服務器,但我不確定pgAdmin
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.