我试图在我的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
答案 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
文件中的导入问题可能存在于两个方面 - 安装和导入。
psycopg2
未安装或出现安装错误,请检查您的 PostgreSQL 安装是否有问题,链接到 PostgreSQL 安装的 pg_config
文件夹中的 bin
文件或openssl
安装及其链接。psycopg2
已安装,但您无法将其导入您的 .py
文件,则问题在于 libpq
及其链接。总体步骤如下所示。您可以逐步检查它以了解哪个是您的错误来源,然后您可以从那里进行故障排除。
通过以下方式在您的 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"
现在是最重要的步骤,即使用命令 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,请执行以下步骤
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