相关文章推荐
谦逊的板栗  ·  ASP.NET Core ...·  1 年前    · 
逃跑的棒棒糖  ·  [WPF] ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I am trying to set up a PostgreSQL database for my django project, which I believe I have done now thanks to the replies to my last question Problems setting up a postgreSQL database for a django project . I am now trying to run the command 'python manage.py runserver' in Terminal to get my localhost up but when I run the command, I see this response...

Error: No module named psycopg2.extensions

I'm not sure what this means - I have tried to download psycopg2 but can't seem to find a way to download psycopg2 using homebrew. I have tried easy_install, pip install and sudo but all return errors like this...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

How to fix this?

You don't have a compiler installed, and you need one to build the psycopg2 package. If you can provide details about your operating system, people here can probably help you with that. – Ian Clelland Oct 4, 2012 at 15:37 @IanClelland Thanks Ian. I'm on Mac OS X 10.6.8. I have homebrew installed if that helps. – Jess Oct 5, 2012 at 16:04

The first thing to do is to install the dependencies.

sudo apt-get build-dep python-psycopg2
sudo apt install python3-psycopg2 # Python 3

After that go inside your virtualenv and use:

pip install psycopg2-binary

These two commands should solve the problem.

What's the point of building the dependencies with apt, then installing with pip? What's wrong with the single command sudo apt-get install python-psycopg2? It worked fine for me. – kdbanman Jun 18, 2015 at 16:41 got You must put some 'source' URIs in your sources.list while triyng any of the above commands – Revolucion for Monica Jul 2, 2018 at 16:34 @nba2020: sudo apt-get...? These are linux (debian/mint/ubuntu) prerequisities for psycopg2-binary. If you use windows or such something you should find windows prerequisities for psycopg2-binary instead and apply them before installing psycopg2-binary. Or maybe (I'm not sure) you can skip prerequisities and install psycopg2 instead of psycopg2-binary and it could work. However psycopg2 (without -binary) is deprecated so it will be better if you try install psycopg2-binary correctly. – mirek Feb 3, 2020 at 17:55 This doesn't help me enough. Somewhere in the history I have installed psycopg2 and later (from: -r requirements.txt) properly psycopg2-binary. Everything worked "fine". But once I uninstalled psycopg2 (without -binary) I received the "No module named psycopg2.extensions" error. Uninstall/install psycopg2-binary doesn't help me. For me the prererequisities were not installed (see @FernandoMunoz answer: apt install build-dep python-psycopg2). Installing these Debian packages and later(!) psycopg2-binary has helped me. – mirek Feb 3, 2020 at 18:01

I installed it successfully using these commands:

sudo apt-get install libpq-dev python-dev
pip install psycopg2

This is what helped me on Ubuntu if your python installed from Ubuntu installer. I did this after unsuccessfully trying 'apt-get install' and 'pip install':

In terminal:

sudo synaptic

then in synaptic searchfield write

psycopg2

choose

python-psycopg2

mark it for installation using mouse right-click and push 'apply'. Of course, if you don't have installed synaptic, then first do:

sudo apt-get install synaptic

I ran into this same issues recently and this code worked.

sudo apt-get install libpq-dev python-dev-is-python3
pip3 install psycopg2

In python 3.4, while in a virtual environment, make sure you have the build dependencies first:

sudo apt-get build-dep python3-psycopg2

Then install it:

pip install psycopg2 
pip3 install django-psycopg2-extension

I know i am late and there's lot of answers up here which also solves the problem. But today i also faced this problem and none of this helps me. Then i found the above magical command which solves my problem :-P . so i am posting this as it might be case for you too.
Happy coding.

@f p Thanks for your reply. How did you import psycopg2? Did you use homebrew? I've tried running the command 'import psycopg2' in my Terminal but it returns 'ImportError: No module named psycopg2'. – Jess Oct 4, 2012 at 13:25 I'm using ubuntu where it's ready to install without compiling.. The example shown is in python. To install in windows look at stickpeople.com/projects/python/win-psycopg What you want is to install it first. – f p Oct 4, 2012 at 13:31

It seems that you need gcc-4.0, and it would be helpful to specify your OS type and version.

Maybe this question will help you a bit: Installing GCC to Mac OS X Leopard without installing Xcode

Update

I'm a Windows user, so I can't test your setup, but a quick google pointed to some more links:

  • http://hardlifeofapo.com/psycopg2-and-postgresql-9-1-on-snow-leopard/
  • Cannot install psycopg2 on OSX 10.6.7 with XCode4
  • Thank you. I've downloaded and installed GCC 10.6 as my OS is 10.6.8. I then ran easy_install psycopg2 but it returned this error... "no previously-included directories found matching 'doc/src/_build' unable to execute gcc-4.0: No such file or directory error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1". Do you know why that might be? – Jess Oct 5, 2012 at 17:37

    I encountered the No module named psycopg2.extensions error when trying to run pip2 install psycopg2 on a Mac running Mavericks (10.9). I don't think my stack trace included a message about gcc, and it also included a hint:

    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'.
    

    I looked for the pg_config file in my Postgres install and added the folder containing it to my path: /Applications/Postgres.app/Contents/Versions/9.4/bin. Your path may be different, especially if you have a different version of Postgres installed - I would just poke around until you find the bin/ folder. After doing this, the installation worked.

    try this:
    sudo pip install -i https://testpypi.python.org/pypi psycopg2==2.7b2
    .. this is especially helpful if you're running into egg error

    on aws ec2 instances if you run into gcc error; try this
    1. sudo yum install gcc python-setuptools python-devel postgresql-devel
    2. sudo su -
    3. sudo pip install psycopg2

    I had such problem when trying to run python script as a sudo, while psycopg2 was installed via pip3 to my own user's directory.

    I managed to resolve the issue for myself removing pip3 version, and just installing it via apt:

    pip3 uninstall psycopg2
    sudo apt install python3-psycopg2
    

    This error raise because you not install postgres database in you project virtutal environment. you should run one of these command. from a terminal you can you command for sudo.

    sudo apt-get install build-dep python-psycopg2
    

    for pip (pip basically work for python)

    pip install psycopg2
    
    pip3 install psycopg2-binary
    

    i'm pretty sure it will work for you.

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.