Apple M1 安装 psycopg2-binary

Apple M1 安装 psycopg2-binary

当我满心欢喜的开始使用我的新电脑的时候,我发现了一些问题,其中就有无法安装 psycopg2-binary这个问题。

本节专门用于设置psycopg早于2.9.0.

一、安装 PostgreSQl

首先要安装 PostgreSQL,可选方式有很多,此处使用Mac 的包管理器 HomeBrew 来安装

1、查看可用 pg 版本

1
2
3
4
5
6
7
8
9
$ brew formulae | grep postgresql@
postgresql@10
postgresql@11
postgresql@12
postgresql@13
postgresql@14
postgresql@15
postgresql@9.4
postgresql@9.5

2、安装 postgresql

我们选择安装最新的 15 版本

1
brew install postgresql@15

3、修改配置

按照 brew 输出的日志,将配置修改完毕

二、安装 openssl

1、查看可用版本

1
2
3
$ brew formulae | grep openssl@
openssl@1.1
openssl@3

2、安装 openssl

1
brew install postgresql@1.1

3、修改配置

按照 brew 输出的日志,将配置修改完毕

三、成功安装

尝试安装 psycopg2 psycopg2-binary 时遇到的第一个错误是:

1
2
3
4
5
6
7
8
9
10
11
12
Error: pg_config executable not found.

pg_config is required to build psycopg2 from source. Please add the directory containing
pg_config to the $PATH or specify the full executable path with the option:

python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

If you prefer to avoid building psycopg2 from source, please install the PyPI 'psycopg2-binary' package instead.

For further information please check the 'doc/src/install.rst' file (also at <https://www.psycopg.org/docs/install.html>).

为了解决这个问题,我们需要pg_config在我们的$PATH

1
export PATH=/opt/homebrew/opt/postgresql@15/bin:$PATH

这也添加了常用的 Postgres工具$PATHpsql.pg_dump

更新$PATH 后,这将是您遇到的下一个错误:

1
2
3
4
5
6
ld: warning: directory not found for option '-L/usr/local/opt/openssl@1.1/lib'
ld: warning: directory not found for option '-L/usr/local/opt/python@3.8/lib'
ld: warning: directory not found for option '-L/usr/local/opt/icu4c/lib'
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1

LDFLAGS我们通过设置我们的and来解决这个问题CPPFLAGS

1
2
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib -L/opt/homebrew/opt/python@3.8/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"

最后成功安装

1
2
pip3 install psycopg2
pip3 install psycopg2-binary

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!