KGo*_*KGo 74 python postgresql macos psycopg2
我试图为教程安装postgres,但是pip给了我错误:
pip install psycopg
Run Code Online (Sandbox Code Playgroud)
我得到一个错误:
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'.
Run Code Online (Sandbox Code Playgroud)
pg_config我的virtualenv 在哪里?如何配置?我正在使用virtualenv,因为我不想在系统范围内安装postgres.
bke*_*kev 89
在Mac上,如果您使用的是Postgres.app,则pg_config文件位于您的/Applications/Postgres.app/Contents/Versions/<current_version>/bin目录中.这需要添加到您的系统路径以修复此错误,如下所示:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
Run Code Online (Sandbox Code Playgroud)
例如,如果当前Postgres.app版本为9.5,则此导出行将为:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
Run Code Online (Sandbox Code Playgroud)
使用更新版本的Postgres.app(> 9.5?),您只需添加"latest"代替版本号,如下所示:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Run Code Online (Sandbox Code Playgroud)
Min*_*gyu 82
在Mac上,解决方案是安装postgresql:
brew install postgresql
Run Code Online (Sandbox Code Playgroud)
在CentOS上,解决方案是安装postgresql-devel:
sudo yum install postgresql-devel
Run Code Online (Sandbox Code Playgroud)
pg_config在postgresql-devel包中
and*_*abs 29
我完全赞同john hight,大多数发布的答案完全是offtopic,假设OP完全指定使用virtualenv的需要.
对我来说,答案是在激活virtualenv时在提示符中运行以下命令:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
(注意第9.4部分代表版本,可能会有所不同)
或者如果您想使用最新安装的Postgres版本:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
然后:
pip install psycopg2
Run Code Online (Sandbox Code Playgroud)
假设你已经安装了postgres,那就太过分了.如果没有,那么请记住,最好和推荐的解决方案是使用:Postgres.app
小智 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
mrg*_*gnw 10
以下是我在Mac上解决此问题的方法(OSX 10.9):
brew update
brew install --force ossp-uuid
brew install postgresql
pip install psycopg
Run Code Online (Sandbox Code Playgroud)
我尝试时遇到CLANG错误pip install psycopg(LLVM 5.1问题),所以我不得不用这个命令安装psycopg:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Run Code Online (Sandbox Code Playgroud)
它类似于Mingyu的解决方案,但有足够的差异我认为值得分享.
对于OS X El Capitan (10.11.6)+ brew+ virtualenv+ PostgreSQL 9.5:
安装后PostgreSQL 9.5:
brew install postgresql@9.5
Run Code Online (Sandbox Code Playgroud)
然后,打开终端并执行:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/
pip install psycopg2
Run Code Online (Sandbox Code Playgroud)
您必须配置路径 postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
Run Code Online (Sandbox Code Playgroud)
之后,您必须安装要求:
pip3 install -r requirements
Run Code Online (Sandbox Code Playgroud)
当构建工具找不到Postgresql库时,会导致此错误.
通常需要指示psycopg2如何找到pg_config二进制文件,您可以:
在shell路径中添加pg_config的路径(/ usr/local/pgsql/bin /)
或者编辑psycopg2源文件夹中的setup.cfg文件,并在以pg_config =开头的行上提供pg_config的完整路径
pg_config =在/ usr /本地/ pgsql的/ bin中/ pg_config
locate pg_config找到它所在的位置,或者只是输入which pg_config,它应该告诉你路径.错误来自于没有在系统上安装postgresql.如果是这样,请下载并构建postgres,或者为OS X下载预先构建的psycopg2二进制文件.
virtualenv 用于 python 包。我认为你不能在 virtualenv 中包含 postgres。您看到的错误消息可能是因为您尚未安装 postgres。psycopg2 安装脚本正在查找 postgres 文件(在本例中为 pg_config),但没有找到它们,因为它尚未安装。postgres 无法使用 pip 或 virtualenv 安装。
| 归档时间: |
|
| 查看次数: |
61578 次 |
| 最近记录: |