如何安装带有 pg_config 错误的 psycopg2?
How to install psycopg2 with pg_config error?
我尝试从 this site 安装 psycopg2(PostgreSQL 数据库适配器),但是当我尝试安装时,我 cd 进入包并写入
python setup.py install
我收到以下错误:
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'.
我也试过 'sudo pip install psycopg2',我得到了同样的信息。
阅读 docs 后,它要求查看 setup.cfg 文件(位于下方):
[build_ext]
define=
# PSYCOPG_DISPLAY_SIZE enable display size calculation (a little slower)
# HAVE_PQFREEMEM should be defined on PostgreSQL >= 7.4
# PSYCOPG_DEBUG can be added to enable verbose debug information
# "pg_config" is required to locate PostgreSQL headers and libraries needed to
# build psycopg2. If pg_config is not in the path or is installed under a
# different name uncomment the following option and set it to the pg_config
# full path.
#pg_config=
# Set to 1 to use Python datetime objects for default date/time representation.
use_pydatetime=1
# If the build system does not find the mx.DateTime headers, try
# uncommenting the following line and setting its value to the right path.
#mx_include_dir=
# For Windows only:
# Set to 1 if the PostgreSQL library was built with OpenSSL.
# Required to link in OpenSSL libraries and dependencies.
have_ssl=0
# Statically link against the postgresql client library.
#static_libpq=1
# Add here eventual extra libraries required to link the module.
#libraries=
但是,我不确定是否应该编辑此文件,因为文档说明如下:
then take a look at the setup.cfg file.
Some of the options available in setup.cfg are also available as command line arguments of the build_ext sub-command. For instance you can specify an alternate pg_config version using:
$ python setup.py build_ext --pg-config /path/to/pg_config build
Use python setup.py build_ext --help to get a list of the options supported.
我已经获得支持的选项列表,但我不确定从那里去哪里
如果您使用的是 Ubuntu 或任何其他基于 debian 的发行版,请尝试
sudo apt-get install python3-psycopg2
否则,您需要为您的发行版查找并安装 Postgresql 客户端包。 psycopg2 installation from source
对于像我这样从源代码构建 postgres
和 psycopg2
的人,这里有另一个解决方案:
sudo su
export PATH=/usr/local/pgsql/bin:$PATH #or path to your pg_config
现在来自 psycopg2 的 setup.py 可以正确找到 pg_config。
python3 setup.py install
或者如果您只想使用 pip3
,pip3 install psycopg2
应该也可以。
升级 pip 对我有用:pip install --upgrade pip
Debian/Ubuntu
Python 2
sudo apt install libpq-dev python-dev
Python 3
sudo apt install libpq-dev python3-dev
额外
If none of the above solve your issue, try
sudo apt install build-essential
or
sudo apt install postgresql-server-dev-all
用pip
改为安装 psycopg2-binary
PyPI 包,它有 Python 用于 Linux 和 Mac OS.
的轮子
pip install psycopg2-binary
我遇到这个问题是因为我还没有在我的机器上安装 PostgreSQL。
对于 Mac 只需一个简单的 brew install postgresql
即可解决问题。
如果需要不编译安装:
pip install psycopg2-binary
https://www.psycopg.org/docs/install.html#binary-install-from-pypi
Note: The psycopg2-binary package is meant for beginners to start
playing with Python and PostgreSQL without the need to meet the build
requirements. If you are the maintainer of a publish package depending
on psycopg2 you shouldn’t use ‘psycopg2-binary’ as a module
dependency. For production use you are advised to use the source distribution.
对于 OSX 使用 Macports,您可以为 Python 3.8 安装 sudo port install py38-psycopg2
。您可以使用 port search psycopg2
搜索您的 Python 版本。在撰写本文时,版本范围从 2.7 到 3.9,所有版本都是最新的 psycopg2 版本 2.8.6。
注意:这可能暂时没有帮助。
编辑:所以要为 venv 找到 pg_config,运行 命令 port contents postgresql13 | grep pg_config
其中 postgresql13
是从上面安装的 postgresql 包的版本端口命令。您正在寻找诸如 /opt/local/lib/postgresql13/bin/pg_config
之类的路径。使用 export PATH=/opt/local/lib/postgresql13/bin/:$PATH
.
等命令将其导出到您的 PATH 变量
参考 Homebrew。
在配备 M1 的 Macbook 上,我必须安装 postgresql
brew install postgresql
(如果你没有 brew:https://brew.sh)
然后运行再次安装
python3 -m pip install psycopg2-binary
在 Fedora 上 (在 Fedora 35 上从源代码测试和构建)
pg_config
出现在 libpq5-devel
中。
现在试试这些步骤:
sudo dnf install libpq5-devel
python setup.py build
sudo python setup.py install
对于mac os
使用 brew install postgresql
安装 postgresql
然后
使用以下命令安装 psycopg2:pip install psycopg2
对我有用
如果您在 macOS 上安装了 Postgres.app,请将其 bin
目录添加到 PATH
环境变量中:
export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH
我尝试从 this site 安装 psycopg2(PostgreSQL 数据库适配器),但是当我尝试安装时,我 cd 进入包并写入
python setup.py install
我收到以下错误:
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'.
我也试过 'sudo pip install psycopg2',我得到了同样的信息。
阅读 docs 后,它要求查看 setup.cfg 文件(位于下方):
[build_ext]
define=
# PSYCOPG_DISPLAY_SIZE enable display size calculation (a little slower)
# HAVE_PQFREEMEM should be defined on PostgreSQL >= 7.4
# PSYCOPG_DEBUG can be added to enable verbose debug information
# "pg_config" is required to locate PostgreSQL headers and libraries needed to
# build psycopg2. If pg_config is not in the path or is installed under a
# different name uncomment the following option and set it to the pg_config
# full path.
#pg_config=
# Set to 1 to use Python datetime objects for default date/time representation.
use_pydatetime=1
# If the build system does not find the mx.DateTime headers, try
# uncommenting the following line and setting its value to the right path.
#mx_include_dir=
# For Windows only:
# Set to 1 if the PostgreSQL library was built with OpenSSL.
# Required to link in OpenSSL libraries and dependencies.
have_ssl=0
# Statically link against the postgresql client library.
#static_libpq=1
# Add here eventual extra libraries required to link the module.
#libraries=
但是,我不确定是否应该编辑此文件,因为文档说明如下:
then take a look at the setup.cfg file.
Some of the options available in setup.cfg are also available as command line arguments of the build_ext sub-command. For instance you can specify an alternate pg_config version using:
$ python setup.py build_ext --pg-config /path/to/pg_config build
Use python setup.py build_ext --help to get a list of the options supported.
我已经获得支持的选项列表,但我不确定从那里去哪里
如果您使用的是 Ubuntu 或任何其他基于 debian 的发行版,请尝试
sudo apt-get install python3-psycopg2
否则,您需要为您的发行版查找并安装 Postgresql 客户端包。 psycopg2 installation from source
对于像我这样从源代码构建 postgres
和 psycopg2
的人,这里有另一个解决方案:
sudo su
export PATH=/usr/local/pgsql/bin:$PATH #or path to your pg_config
现在来自 psycopg2 的 setup.py 可以正确找到 pg_config。
python3 setup.py install
或者如果您只想使用 pip3
,pip3 install psycopg2
应该也可以。
升级 pip 对我有用:pip install --upgrade pip
Debian/Ubuntu
Python 2
sudo apt install libpq-dev python-dev
Python 3
sudo apt install libpq-dev python3-dev
额外
If none of the above solve your issue, try
sudo apt install build-essential
or
sudo apt install postgresql-server-dev-all
用pip
改为安装 psycopg2-binary
PyPI 包,它有 Python 用于 Linux 和 Mac OS.
pip install psycopg2-binary
我遇到这个问题是因为我还没有在我的机器上安装 PostgreSQL。
对于 Mac 只需一个简单的 brew install postgresql
即可解决问题。
如果需要不编译安装:
pip install psycopg2-binary
https://www.psycopg.org/docs/install.html#binary-install-from-pypi
Note: The psycopg2-binary package is meant for beginners to start playing with Python and PostgreSQL without the need to meet the build requirements. If you are the maintainer of a publish package depending on psycopg2 you shouldn’t use ‘psycopg2-binary’ as a module dependency. For production use you are advised to use the source distribution.
对于 OSX 使用 Macports,您可以为 Python 3.8 安装 sudo port install py38-psycopg2
。您可以使用 port search psycopg2
搜索您的 Python 版本。在撰写本文时,版本范围从 2.7 到 3.9,所有版本都是最新的 psycopg2 版本 2.8.6。
注意:这可能暂时没有帮助。
编辑:所以要为 venv 找到 pg_config,运行 命令 port contents postgresql13 | grep pg_config
其中 postgresql13
是从上面安装的 postgresql 包的版本端口命令。您正在寻找诸如 /opt/local/lib/postgresql13/bin/pg_config
之类的路径。使用 export PATH=/opt/local/lib/postgresql13/bin/:$PATH
.
参考
在配备 M1 的 Macbook 上,我必须安装 postgresql
brew install postgresql
(如果你没有 brew:https://brew.sh)
然后运行再次安装
python3 -m pip install psycopg2-binary
在 Fedora 上 (在 Fedora 35 上从源代码测试和构建)
pg_config
出现在 libpq5-devel
中。
现在试试这些步骤:
sudo dnf install libpq5-devel
python setup.py build
sudo python setup.py install
对于mac os
使用 brew install postgresql
安装 postgresql然后
使用以下命令安装 psycopg2:pip install psycopg2
对我有用
如果您在 macOS 上安装了 Postgres.app,请将其 bin
目录添加到 PATH
环境变量中:
export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH