在mac osx 10.9.5上安装Psycopg2

时间:2015-11-23 08:42:30

标签: python macos postgresql psycopg2

我试图在我的Mac书上安装Psycopg2。我仍然得到同样的错误。我在Stack Overflow上发现了很多相同的问题,但似乎没有答案可行。我认为它已经过时了。我正在使用:

Mac osx 10.9.5
Python 3.4.3

我的错误代码是:

  

运行package.py egg_info for package psycopg2错误:pg_config   找不到可执行文件。

     

请将包含pg_config的目录添加到PATH或指定   带有选项的完整可执行文件路径:

     

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

     

或使用' setup.cfg'中的pg_config选项。完成输出   命令python setup.py egg_info:running egg_info

     

写pip-egg-info / psycopg2.egg-info / PKG-INFO

     

将顶级名称写入   PIP-蛋方式/ psycopg2.egg-方式/ top_level.txt

     

将dependency_links写入   PIP-蛋方式/ psycopg2.egg-方式/ dependency_links.txt

     

警告:manifest_maker:标准文件' -c'找不到

     

错误:找不到pg_config可执行文件。

     

请将包含pg_config的目录添加到PATH

     

或使用选项

指定完整的可执行文件路径      

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

     

或使用' setup.cfg'。

中的pg_config选项            

命令python setup.py egg_info失败,错误代码为1   / Users / stevengerrits / build / psycopg2存储完整的登录   /Users/stevengerrits/Library/Logs/pip.log

14 个答案:

答案 0 :(得分:38)

您似乎没有安装postgres,请检查如何在您的系统中安装postgresql,其中一种方法是 brew install postgresql(如果你使用自制软件推荐) 或者从postgresapp.com下载postgres应用程序,pg_config应该附带postgres,而psycopg2正试图找到它。

答案 1 :(得分:25)

要安装psycop2,您需要先安装服务器(我已安装PostgresApp

在我的案例中,手动运行包含pg_config env变量中PATH程序路径的命令:

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

然后运行

pip3 install psycopg2

修改

检查pg_config的目录:

which pg_config

答案 2 :(得分:7)

我跑了pip install psycopg2-binary,它像魅力一样工作

答案 3 :(得分:1)

即使我无法在MacOx 10.15.6上安装psycopg2。

我尝试通过pip安装psycopg2-binary并成功。

答案 4 :(得分:1)

我的问题是,出于某些原因,从VENV pip install psycopg2无法正常工作,但我发现从VENV内部运行此命令

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

允许我在Mac上安装它。

答案 5 :(得分:1)

psycopg2 安装及其在 .py 文件中的导入问题可能存在于两个方面 - 安装和导入。

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

    以下是在 Mac OS Big Sur 上安装 psycopg2 时对我和我的团队成员有用的步骤。在开始之前,请确保您已安装 Xcode 命令行工具。如果没有,请从 Apple Developer 站点安装它。以下步骤假设您已安装自制软件。如果您还没有安装自制软件,请安装它。最后但并非最不重要的是,它还假设您已经在您的系统中安装了 PostgreSQL,如果没有,请安装它。不同的人有不同的偏好,但 official PostgreSQL site via Enterprise DB installer 上的默认安装方法是大多数人的最佳方法。
  • 通过以下方式在您的 pg_config 文件中建立到 .zshrc 文件的链接:
    export PATH="$PATH:/Library/PostgreSQL/12/bin:$PATH" .这样您就可以与 pg_config 文件夹中的 /Library/PostgreSQL/12/bin 文件建立链接。因此,如果您通过其他方式安装 PostgreSQL,例如 Postgres.app 或通过自制软件安装 Postgres,那么您需要在 .zshrc 文件中包含 pg_config 文件夹中 bin 文件的链接psycopg2 的 PostgreSQL 安装依赖于此。

  • 使用命令 brew install openssl 通过 Homebrew 安装 OpenSSL。这样做的原因是作为 libpq 基础的库 psycopg2 使用了 openssl - psycopg2 不直接使用它。安装后,将以下命令放入您的 .zshrc 文件中:

    • export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
    • export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
    • export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
      通过这样做,您将在您的目录中创建必要的链接。这些命令是在您安装 openssl 时由 brew 建议的,并且是直接从那里获取的。
  • 现在是最重要的步骤,即使用命令 libpq 安装 brew install libpq。这将安装 libpq 库。 As per the documentation

<块引用>

libpq 是 C 应用程序员的 PostgreSQL 接口。 libpq 是一组库函数,允许客户端程序将查询传递到 PostgreSQL 后端服务器并接收这些查询的结果。

  • 使用 brew link libpq 链接 libpq,如果这不起作用,则使用命令:brew link libpq --force
  • 同时在您的 .zshrc 文件中加入以下
    export PATH="/usr/local/opt/libpq/bin:$PATH"。这会为 libpq 库创建所有必要的链接。
  • 现在重新启动终端或使用以下命令 source ~/.zshrc

  • 现在使用命令 pip install psycopg2。它会起作用。 即使您在 conda 环境中工作,这也有效。

    注意pip install psycopg2-binary 应该避免,因为 as per the developers of the psycopg2 library
<块引用>

不鼓励在生产中使用 -binary 包,因为过去证明它们在多线程环境中不可靠。这可能已在较新的版本中修复,但我从未设法重现该故障。

答案 6 :(得分:0)

如果您使用Docker而又不想在主机系统中安装postgresql, 您可以尝试使用软件包psycopg2-binary并在容器中使用postgresql

答案 7 :(得分:0)

我整天都在与这个问题作斗争。然后,我运行了一个在枕头库“问题”中找到的脚本,并解决了该问题。一探究竟 https://github.com/python-pillow/Pillow/issues/3438#issuecomment-435169249

答案 8 :(得分:0)

$ 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安装psycopg2

答案 9 :(得分:0)

我对此有疑问。我所做的是确保Python与pip安装方式保持最新。它需要安装“ pip3”。

答案 10 :(得分:0)

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

  1. 转到应用程序文件夹
  2. 选择Postgre.app
  3. 右键单击并“显示包装内容”
  4. 选择内容->版本-> {版本号}-> bin
  5. 检查版本号

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/{Version Number}/bin/

示例

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

然后运行以下

pip3 install psycopg2

这应该可以解决您的问题

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

答案 13 :(得分:-2)

在我的MAC上,这成功了:

pip install psycopg2-binary