如何安装 libpq-fe.h?

新手上路,请多包涵

我这辈子都弄不明白。

当我 pip install django-tenant-schemas 它尝试安装依赖 psycopg2 它需要 Python 头文件和 gcc。我已经安装了所有这些,但仍然不断收到此错误!

 ./psycopg/psycopg.h:35:10: fatal error: libpq-fe.h: No such file or directory

所以要安装 libpq-fe-h 我需要 sudo apt-get install libpq-dev ..

..返回..

 libpq-dev is already the newest version (10.10-0ubuntu0.18.04.1).

然后当我 sudo find / libpq-fe.h 它似乎不在我的操作系统中。

我在这一点上迷路了。如果有人可以提供帮助,我将不胜感激。

原文由 David Alford 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

由于某种原因,该文件在系统中丢失。

当您使用 apt-get 时,系统是基于 dpkg 的,大概是 Debian 或其衍生版本。您可以尝试使用 Ubuntu 的包搜索 来获取哪个包包含名称 libpq-fe.h 结尾的文件。

我发现包是 libpq-dev 文件的绝对路径是 /usr/include/postgresql/libpq-fe.h


FWIW,在基于 dpkg 的系统上,如果您知道文件的绝对路径,则可以检查哪个包提供了文件:

 % dpkg -S /usr/include/postgresql/libpq-fe.h
libpq-dev: /usr/include/postgresql/libpq-fe.h

Also, unlike find , locate keeps a cache of found files ( mlocate.db ) that is created everyday via cron ;因此,如果文件在上次运行后恰好被删除,您可以运行 locate libfq-fe.h 来获取文件的绝对路径,而无需在线检查 Ubuntu 包搜索。


所以包是 libpq-dev 。现在,重新安装它将使一切恢复到默认状态,即所有相关文件都将被复制到正确的位置。因为它只是一个库包,所以不会覆盖任何用户/系统级配置(并且 dpkg 将提示您对执行此操作的任何包执行操作)。

要重新安装软件包:

 sudo apt-get install --reinstall libpq-dev

原文由 heemayl 发布,翻译遵循 CC BY-SA 4.0 许可协议

对我来说,我意识到它正在尝试使用已弃用的 setup.py,所以我安装了 wheel ( pip install wheel ) 并解决了所有问题。

原文由 ramojo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题