I was playing with Django with Postgres backend, and I had little difficulty installing “psycopg2” the Python DB adapter for Postgres on my Mac OSX.
I’ve installed Postgres using Postgres.app for OSX which is straight forward and standard Mac app.
But when I tried installing “psycopg2” using “pip” (the python package manager) I got an error:
$ pip install psycopg2
Error: pg_config executable not found.
I just searched for “pg_config” in my system:
$ find / -name pg_config 2>/dev/null
Then added to my PATH env and pip worked:
$ export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/
$ pip install psycopg2
After upgrading my Ubuntu machine from 12.04 to 14.04 I had this error on virtualenv wrapper:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/stevedore/extension.py", line 75, in _load_plugins
File "/usr/local/lib/python2.7/dist-packages/stevedore/extension.py", line 87, in _load_one_plugin
plugin = ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2087, in load
if require: self.require(env, installer)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2100, in require
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 628, in resolve
After some investigation I found out the cause of the error, it seems that I’ve installed virtualenv-wrapper using pip and not Ubuntu apt-get, so when I installed it using apt-get it conflicted with the pip installation.
- Remove virtualenvwrapper Ubuntu package:
sudo aptitude remove virtualenvwrapper
- Remove virtualenvwrapper pip package:
sudo pip uninstall virtualenvwrapper virtualenv-clone virtualenv stevedore
- Reinstall virtualenvwrapper Ubuntu package:
sudo aptitude install virtualenvwrapper
What is virtualenvwrapper
virtualenvwrapper is a tool that (as the name suggest) wrap “virtualenv” program, virtualenv solve the following problem:
The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.
“virtualenvwrapper” will is simple wrapper that allows to create virtual environments and switch between them easily!
Continue reading Managing Python Environments with “virtualenvwrapper”