Python 在MacOS 10.9.5上安装Psycopg2时出错

Python 在MacOS 10.9.5上安装Psycopg2时出错,python,macos,postgresql,psycopg2,Python,Macos,Postgresql,Psycopg2,我正试图在我的Macbook上安装Psycopg2,但我遇到了一个错误。我在StackOverflow上发现了很多相同的问题,但似乎没有答案 我正在使用: 操作系统:MacOS 10.9.5 Python版本:3.4.3 我的错误代码是: Running setup.py egg_info for package psycopg2 Error: pg_config executable not found. Please add the directory containing pg_con

我正试图在我的Macbook上安装
Psycopg2
,但我遇到了一个错误。我在StackOverflow上发现了很多相同的问题,但似乎没有答案
我正在使用:

操作系统:MacOS 10.9.5
Python版本:3.4.3

我的错误代码是:

Running setup.py egg_info for package psycopg2  Error: pg_config
executable not found.

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'.  Complete output from
command python setup.py egg_info:  running egg_info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO
 
writing top-level names to
pip-egg-info/psycopg2.egg-info/top_level.txt
 
writing dependency_links to
pip-egg-info/psycopg2.egg-info/dependency_links.txt
 
warning: manifest_maker: standard file '-c' not found
 
Error: pg_config executable not found.

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'.
 
---------------------------------------- 
Command python setup.py egg_info failed with error code 1 in
/Users/sg/build/psycopg2 Storing complete log in
/Users/sg/Library/Logs/pip.log

您似乎没有安装postgres,请检查如何在系统中安装postgresql,其中一种方法是
brew安装postgresql
(如果使用自制-推荐)
或者从postgresapp.com下载postgres应用程序,pg_config应该随postgres一起提供,psycopg2正在尝试找到它。

OSX不再包含PostgreSQL,因此您需要以某种方式安装它来构建psycopg2模块的二进制部分

我使用了
brew
port
。通过其中一个安装任何PostgreSQL版本将使您能够构建模块

如果以其他方式安装Postgres,则需要检查路径中的可执行文件
pg_config

您可以使用命令检查是否存在
pg_config

which -a pg_config
如果已安装Postgres,且上述命令未返回任何内容,则需要手动查找
pg_config
可执行文件,并将其包含目录放入路径中,其中包含:

export PATH=/path/to/postgresql/bin/:$PATH
编辑:

如果您已经通过自制软件安装了它,但它不在您的路径中,则应检查路径中是否存在
/usr/local/bin
目录,以及是否缺少该目录

如果目录在那里,您可以尝试使用以下命令重新链接postgres

brew unlink postgresql && brew link postgresql

要安装
psycopg2
您需要在之前安装服务器(我已安装)

手动运行命令,包括
path
env变量中
pg_config
程序的路径,在我的情况下:

export PATH=/Applications/Postgres.app/Contents/Versions/@latest/bin/:$PATH
然后跑

pip3 install psycopg2
编辑:

检查
pg_config
目录:

which pg_config

如果您使用Docker并且不想在主机系统中安装
postgresql

您可以尝试使用package
psycopg2 binary
并在容器中使用
postgresql

我为这个问题争论了整整一天。然后我运行了一个在枕头库问题中找到的脚本,并解决了这个问题。过来看

我运行了
pip安装psycopg2二进制文件
,效果非常好


$find/-name pg_config 2>/dev/null

/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

$export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/


$pip在我的MAC电脑上安装psycopg2

,这就成功了:

pip install psycopg2-binary

我对这件事有意见。我所做的是确保Python与我安装pip的方式是最新的。它需要“pip3”安装。

要在mac中安装psycopg2,请执行以下步骤

  • 转到应用程序文件夹
  • 选择Postgre.app
  • 右键单击并“显示软件包内容”
  • 选择内容-->版本-->{Version Number}-->bin
  • 检查版本号

  • 范例

    export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/12/bin/
    
    然后运行下面的

    pip3 install psycopg2
    

    即使我无法在MacOx 10.15.6上安装psycopg2,这也可以解决您的问题


    我尝试了pip安装psycopg2二进制文件,它成功了。

    我的问题是,由于某种原因,在VENV内部,pip安装psycopg2无法工作,但我发现在VENV内部运行此命令

    env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' pip install psycopg2
    

    请允许我在mac上安装它。

    在big sur上也有同样的问题,就我而言,我已经安装了postgresql。不知何故,我重新启动了机器并尝试安装psycopg2,它工作正常。

    安装OpenSSL并运行:
    导出库路径=$LIBRARY路径:/usr/local/opt/OpenSSL/lib/
    。此命令导出其路径。

    安装问题及其在
    .py
    文件中的导入可能存在于两个区域-安装和导入

  • 如果您的
    psycopg2
    未安装或出现安装错误,请检查您是否有PostgreSQL安装问题,链接到PostgreSQL安装的
    bin
    文件夹中的
    pg_config
    文件或
    openssl
    安装及其链接
  • 如果安装了
    psycopg2
    ,但无法将其导入
    .py
    文件,则问题在于
    libpq
    及其链接。整个步骤如下所示。您可以一步一步地检查它,以了解哪个是您的错误源,然后您可以从那里进行故障排除。

    以下是在Mac OS Big Sur上安装psycopg2时,我和我的团队成员所采取的步骤。开始之前,请确保已安装Xcode命令行工具。如果没有,请从Apple开发者网站安装。以下步骤假定已安装自制软件。如果尚未安装自制软件,请安装它。最后但并非最不重要的一点是,它还假设您的系统中已经安装了PostgreSQL,如果没有,请安装它。不同的人有不同的偏好,但上的默认安装方法是大多数人的最佳方法
    • 在您的
      .zshrc
      文件中,通过以下方式建立到
      pg_config
      文件的链接:
      导出路径=“$PATH:/Library/PostgreSQL/12/bin:$PATH”
      。这样,您就可以链接到
      /Library/PostgreSQL/12/bin
      文件夹中的
      pg_config
      文件。因此,如果您的PostgreSQL安装是通过其他方式进行的,例如Postgres.app或通过自制的Postgres安装,那么您需要在
      .zshrc
      文件中包含指向该PostgreSQL安装的
      bin
      文件夹中的
      pg_config
      文件的链接,因为
      psycopg2
      依赖于此

    • 使用命令
      brew Install OpenSSL
      通过自制安装OpenSSL。原因是
      libpq
      ,该库是
      psycopg2env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' pip install psycopg2