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

时间:2018-02-03 05:55:53

标签: python-2.7 installation pip psycopg2 postgresql-9.1

我的项目正在运行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.

我正在尝试找到如何解决错误但现在没有获得任何线索。

1 个答案:

答案 0 :(得分:3)

我认为您遇到了版本锁定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)。但是,现在您升级了操作系统,无意中升级到版本10

以下是四种不同的解决方案,但首先您可能需要

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