Python 在MacOS 10.9.5上安装Psycopg2时出错
我正试图在我的Macbook上安装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
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,请执行以下步骤
范例
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
文件。因此,如果您的PostgreSQL安装是通过其他方式进行的,例如Postgres.app或通过自制的Postgres安装,那么您需要在pg_config
文件中包含指向该PostgreSQL安装的.zshrc
文件夹中的bin
文件的链接,因为pg_config
依赖于此psycopg2
- 使用命令
通过自制安装OpenSSL。原因是brew Install OpenSSL
,该库是libpq
psycopg2
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' pip install psycopg2