将psycopg2安装到virtualenv时出现gcc错误(Lubuntu 12.04,python 2.7)

时间:2012-07-15 05:15:07

标签: python postgresql virtualenv

我正在尝试使用pip将psycopg2安装到virtualenv中,但似乎有某种gcc错误,我无法理解。我已经按照其他一些问题的建议安装了python-dev和libpq-dev。

pip install psycopg2
Downloading/unpacking psycopg2
  Running setup.py egg_info for package psycopg2

    no previously-included directories found matching 'doc/src/_build'
Installing collected packages: psycopg2
  Running setup.py install for psycopg2
    building 'psycopg2._psycopg' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.5 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090104 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.1/server -c psycopg/psycopgmodule.c -o build/temp.linux-i686-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
    gcc: error trying to exec 'as': execvp: No such file or directory
    error: command 'gcc' failed with exit status 1
    Complete output from command /home/mdang/Dropbox/WebDev/ideas/venv/bin/python -c "import setuptools;__file__='/home/mdang/Dropbox/WebDev/ideas/venv/build/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-SBgH20-record/install-record.txt --install-headers /home/mdang/Dropbox/WebDev/ideas/venv/include/site/python2.7:
    running install

running build

running build_py

running build_ext

building 'psycopg2._psycopg' extension

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.5 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090104 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.1/server -c psycopg/psycopgmodule.c -o build/temp.linux-i686-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement

gcc: error trying to exec 'as': execvp: No such file or directory

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /home/mdang/Dropbox/WebDev/ideas/venv/bin/python -c "import setuptools;__file__='/home/mdang/Dropbox/WebDev/ideas/venv/build/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-SBgH20-record/install-record.txt --install-headers /home/mdang/Dropbox/WebDev/ideas/venv/include/site/python2.7 failed with error code 1 in /home/mdang/Dropbox/WebDev/ideas/venv/build/psycopg2
Storing complete log in /home/mdang/.pip/pip.log

2 个答案:

答案 0 :(得分:2)

修改您的sources.list文件(通常位于etc/apt/sources.list中)并为每个对应的deb-src行添加deb

  

deb http://in.archive.ubuntu.com/ubuntu/精确主要限制

     

deb-src http://in.archive.ubuntu.com/ubuntu/精确主要限制 #Add this line

     

deb http://in.archive.ubuntu.com/ubuntu/精确更新主要限制

     

deb-src http://in.archive.ubuntu.com/ubuntu/精确更新主要限制 #Add this line

两者之间的区别:

  • deb:这些存储库包含二进制文件或预编译包。 大多数用户都需要这些存储库。
  • deb-src:这些存储库包含的源代码 包。对开发人员有用。

现在尝试:

sudo apt-get update
sudo apt-get build-dep psycopg2  # The name has changed to `psycopg2` from `python-psycopg2` 

答案 1 :(得分:1)

您需要安装两件事:

  1. sudo apt-get install build-essential
  2. sudo apt-get build-dep python-psycopg2
  3. 第一个安装所需的构建工具,第二个安装在virtualenv中编译psycopg2所需的依赖项。