pip install psycopg2==2.6 给出错误命令 "python setup.py egg_info" 失败,错误代码为 1 in /tmp/pip-build-f6rRmm/psycopg2/

pip install psycopg2==2.6 giving error Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-f6rRmm/psycopg2/

我的项目是 运行 postgreSQL,在我将系统升级到 ubuntu 16.04 并再次克隆项目后,我无法安装特定的包。

我也尝试过清除 postgresql 和 psycopg2 但我无法安装它

(temp) hellrazor@hellrazor-desktop:~/workspace/te___ave/backend/te___ave$ pip install psycopg2==2.6 > ERROR.txt
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-f6rRmm/psycopg2/
(temp) hellrazor@hellrazor-desktop:~/workspace/te___ave/backend/te___ave$ 

这是我遇到的错误

Collecting psycopg2==2.6
  Using cached psycopg2-2.6.tar.gz
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info/psycopg2.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
    writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
    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'.

    ----------------------------------------

我做了https://help.ubuntu.com/community/PostgreSQL#Client_Installation

中写的所有步骤

另外在 pg_config executable not found 的一些回答中我看到我需要添加 sudo apt-get install libpq-dev python-dev

但它给出了这个输出

(temp) hellrazor@hellrazor-desktop:~/workspace/teamwave/backend/teamwave$ sudo apt-get install libpq-dev python-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python-dev is already the newest version (2.7.11-1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libpq-dev : Depends: libpq5 (= 9.5.10-0ubuntu0.16.04) but 10.1-1.pgdg16.04+1 is to be installed
E: Unable to correct problems, you have held broken packages.

我正在尝试寻找解决错误的方法,但现在没有得到任何线索。

我认为您遇到了版本锁定问题 psycopg2。您已锁定到版本 2.6,该版本有一些已知的构建问题已在更高版本中解决。

如果您阅读发行说明,可在此处找到:http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-7-4 您会看到该版本 2.72.7.4 都修复了与构建和安装软件包相关的错误。

我猜你之前安装的 Linux 是 运行 旧版本的 Postgres(9.5,我想)。但是,既然您升级了 OS,您无意中升级到了版本 10

这里有四种不同的解决方案可供尝试,但首先您可能需要

  1. 确保您的 PostgreSQL 安装配置正确,以便 pg_config 可以从您的终端 运行。
  2. 使用 pip install psycopg2
  3. 删除 pip 安装中的版本锁定
  4. 将您的 libpq-dev 包版本锁定为适合 PostgreSQL 9.5
  5. 的版本
  6. 如果不需要版本 10
  7. ,请将 PostgreSQL 重新安装到版本 9.5