12

我需要安装 plpython,因为我收到了错误

could not access file "$libdir/plpython2": No such file or directory

尝试执行 python manage.py 迁移时。我已经看到有关如何安装此软件包的不同建议,但没有一个对我有用,因为我需要使用 python 版本 2.7(有些人建议安装 python 3.2)并且我无法运行 sudo apt-get install ... 因为我必须在 Mac 上工作。

我试过跑步

CREATE LANGUAGE plpython2u;

但我得到了错误

ERROR:  could not access file "$libdir/plpython2": No such file or directory

另外,我试过了pip/brew install plpython。但没有结果。有什么建议么?

4

5 回答 5

12

如果有人有同样的问题,我通过卸载 postgres 并使用安装它来解决这个问题brew install postgres --with-python

于 2016-07-27T17:53:38.940 回答
4

我快速为最新的 postgresql (11.2) 创建了一个 tap 公式,添加了一个 --with-python 选项来编译选项。到目前为止,它的工作。没有二进制版本,只能从源代码编译。要使用它:

brew tap indlin/postgresql-py
brew install postgresql-py

如果我理解正确,这是 brew 中更改选项的官方路径(创建自己的点击公式)。我不明白他们为什么这样做???

于 2019-02-20T14:22:59.773 回答
3

(macOS Catalina 10.15.5,自制 2.3.0)

投票解决方案不适用于 Homebrew 的最新版本,后者不再支持选项,请参阅https://github.com/Homebrew/homebrew-core/issues/31510

> brew reinstall postgresql@9.4 --with-python
...
Error: invalid option: --with-python

幸好有petere / homebrew-postgresql

为了避免这个错误,我首先更新了 XCode 命令工具:

configure: error: header file <perl.h> is required for Perl

> sudo rm -rf /Library/Developer/CommandLineTools
> sudo xcode-select --install

接着

> brew tap petere/postgresql
> brew reinstall petere/postgresql/postgresql@9.4

为我带来了 plpython2 的生命。

于 2020-06-01T14:48:41.860 回答
1

呃,这是一个真正的痛苦,因为他们已经删除了这个with-python@2选项。我设法通过以下步骤安装它:

git clone https://github.com/Homebrew/homebrew-core.git
cd homebrew-core/
git checkout c2c0659f5a2e5be9c54c214e5aa19a2fe2cdc374
brew install --build-from-source ./Formula/postgresql@9.5.rb --with-python@2
brew services restart postgresql@9.5

可能有更好的方法,但这对我有用。

于 2019-01-28T02:08:23.497 回答
1

非常感谢@facetoe;可悲的是,正如其他人所说,此提交取消了功能https://github.com/Homebrew/homebrew-core/commit/c55743ce2e993d3407a7f7932abfe4910a25f953#diff-c290cd53a44f82f9ba1f4d59d9f90140。最终我想要最新的只用python;对我来说最快的方法是:

git clone https://github.com/Homebrew/homebrew-core.git
cd homebrew-core/
vi Formula/postgresql.rb 

在这里,您需要将 python 的环境变量和--with-pythonargs 列表添加到安装块中。我对当前主人的区别是:

@@ -38,6 +38,7 @@ class Postgresql < Formula
   def install
     ENV.prepend "LDFLAGS", "-L#{Formula["openssl@1.1"].opt_lib} -L#{Formula["readline"].opt_lib}"
     ENV.prepend "CPPFLAGS", "-I#{Formula["openssl@1.1"].opt_include} -I#{Formula["readline"].opt_include}"
+    ENV["PYTHON"] = which("python3")
 
     args = %W[
       --disable-debug
@@ -56,6 +57,7 @@ class Postgresql < Formula
       --with-libxslt
       --with-openssl
       --with-pam
+      --with-python
       --with-perl
       --with-tcl
       --with-uuid=e2fs

然后最后你想安装它:

brew install --build-from-source ./Formula/postgresql.rb
sudo install_name_tool -change @rpath/Python3.framework/Versions/3.8/Python3 /usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/Python /usr/local/lib/postgresql/plpython3.so
brew services start postgresql
于 2020-10-02T09:23:56.253 回答