我正在尝试为教程安装postgres,但是pip
给了我错误:
pip install psycopg
我得到的一段错误:
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'.
我的virtualenv中的pg_config
在哪里?如何配置?我正在使用virtualenv,因为我不想在系统范围内安装postgres。
答案 0 :(得分:82)
在Mac上,如果您使用的是Postgres.app,则pg_config文件位于/Applications/Postgres.app/Contents/Versions/<current_version>/bin
目录中。这需要添加到您的系统路径以修复此错误,如下所示:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
例如,如果当前的Postgres.app版本为9.5,则此导出行将为:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
使用更新版本的Postgres.app(&gt; 9.5?),您只需添加“latest”代替版本号,如下所示:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
答案 1 :(得分:80)
在Mac上,解决方案是安装postgresql
:
brew install postgresql
在CentOS上,解决方案是安装postgresql-devel
:
sudo yum install postgresql-devel
pg_config
位于postgresql-devel
包
答案 2 :(得分:26)
我完全同意john hight,假设OP确切地指定使用 virtualenv 的需要,那么大多数发布的答案都完全是offtopic。
对我来说,答案是在激活virtualenv时在提示符中运行以下命令:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(注意第9.4部分代表版本,可能会有所不同)
或者如果您想使用最新安装的Postgres版本:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
然后:
pip install psycopg2
假设你已经安装了postgres。如果没有,那么请记住,最好和推荐的解决方案是使用:Postgres.app
答案 3 :(得分:17)
不要忘记虚拟环境中的$ PATH变量!=全局$ PATH变量。您可以在virtualenv中使用“echo $ PATH”以及新shell中进行确认。因此,除非你想在你的虚拟环境中安装PostgreSQL作为一个独特的实例(不值得做,imo),你需要修改virtualenv中的$ PATH变量以包含全局安装的路径(这将是解决你丢失的pg_config错误。)
以下是步骤:
1。)在新shell中,键入“which pg_config”。这将返回路径。复制它。就我而言,路径看起来像这样:/Applications/Postgres.app/Contents/Versions/9.3/bin
2。)回到你的virtualenv shell,输入'export PATH = / your-path-to-pg_config:$ PATH'
3。)然后,仍然在virtualenv中,'pip install psycopg2'
如果一切按计划进行,这将在虚拟环境中安装psycopg2,但安装将参考您的Global PostgreSQL安装。在我的例子中,这个Global安装是通过Postgres.App安装的,因此是路径。我更喜欢这种使用psycopg2的方法,因为这意味着我可以在任何virtualenv中轻松使用数据库,而不仅仅是在定义的虚拟环境中。
希望这可以帮助到达这里的任何人。对于Google juice,这是遇到此问题时返回的显式(和模糊)错误语言:
命令python setup.py egg_info失败,错误代码为1
答案 4 :(得分:10)
以下是我在Mac(OSX 10.9)上解决此问题的方法:
brew update
brew install --force ossp-uuid
brew install postgresql
pip install psycopg
当我尝试pip install psycopg
(LLVM 5.1 issue)时出现CLANG错误,所以我不得不用这个命令安装psycopg:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
它类似于Mingyu's解决方案,但有足够的差异我认为值得分享。
答案 5 :(得分:5)
当构建工具找不到Postgresql库时,会导致此错误。
通常需要指示psycopg2如何找到pg_config二进制文件,你可以:
在shell路径中添加pg_config的路径(/ usr / local / pgsql / bin /)
或编辑psycopg2源文件夹中的setup.cfg文件并提供 以pg_config =
pg_config =的/ usr /本地/ pgsql的/ bin中/ pg_config
locate pg_config
找出它所在的位置,或者只需输入which pg_config
,它就会告诉您路径。错误来自于未在系统上安装postgresql。如果是这样,请下载并构建postgres,或者为OS X下载预先构建的psycopg2二进制文件。
答案 6 :(得分:3)
OS X El Captain (10.11.6)
+ brew
+ virtualenv
+ PostgreSQL 9.5
:
安装PostgreSQL 9.5
后:
brew install postgresql@9.5
打开终端并执行:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/
pip install psycopg2
答案 7 :(得分:2)
在Windows上,我从http://www.enterprisedb.com/products-services-training/pgdownload#windows手动安装了postgres。 之后,同样的命令也可以。
答案 8 :(得分:1)
virtualenv适用于python包。我认为你不能在virtualenv中包含postgres。您看到的错误消息可能是因为您尚未安装postgres。 psycopg2安装脚本正在查找postgres文件(在本例中为pg_config)而未查找它们,因为它未安装。无法使用pip或virtualenv安装postgres。
答案 9 :(得分:1)
除了@bkev和@andi提供的答案之外,根据Postgres.app上的documentation,您应该将以下内容添加到Mac上的bash_profile中:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
请注意,没有硬编码版本号。我想将此添加为对上述答案的评论,但我没有足够的代表。
答案 10 :(得分:1)
如果您使用的是postgresql 9.4,则该文件位于
中/usr/pgsql-9.4/bin/pg_config
包的名称是
postgresql94-9.4.9-1PGDG.rhel6.x86_64
将pg_config添加到PATH,请执行以下操作
PATH=$PATH:/usr/pgsql-9.4/bin/
答案 11 :(得分:1)
您必须配置路径postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
之后,您必须安装要求:
pip3 install -r requirements
答案 12 :(得分:0)
在 Ubuntu 上我只需要postgres开发包:
sudo apt-get install postgresql-server-dev-all
答案 13 :(得分:0)
我的位于/Library/PostgreSQL/9.4/bin
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
答案 14 :(得分:0)
如果您不必专门使用psycopg
驱动程序,请切换到pg8000
驱动程序。它是纯粹的Python而且不那么挑剔。