pip - Requirement already satisfied?

bentzy picture bentzy · Feb 2, 2013 · Viewed 77.6k times · Source

pip recognize global installed packages..?! :-(

I've used virtualenvwrapper preactivate hook to clean PYTHONPATH,

export PYTHONPATH="" 

then echo $PYTHONPATH returns empty string, but this didn't help.

What's wrong?

bentzy@lama:~$ mkvirtualenv test
New python executable in test/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /home/bentzy/.virtualenvs/test/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/bentzy/.virtualenvs/test/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/bentzy/.virtualenvs/test/bin/preactivate
virtualenvwrapper.user_scripts creating /home/bentzy/.virtualenvs/test/bin/postactivate
virtualenvwrapper.user_scripts creating /home/bentzy/.virtualenvs/test/bin/get_env_details
(test)bentzy@lama:~$ which pip
/home/bentzy/.virtualenvs/test/bin/pip
(test)bentzy@lama:~$ sudo pip install simplejson
Requirement already satisfied (use --upgrade to upgrade): simplejson in /usr/lib    /python2.7/dist-packages
Cleaning up...
(test)bentzy@lama:~$ echo $PYTHONPATH

(test)bentzy@lama:~$ pip --version
pip 1.2.1 from /home/bentzy/.virtualenvs/test/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg (python 2.7)

Answer

Hugo Tavares picture Hugo Tavares · Feb 3, 2013

You are using sudo to install simplejson, but if you use sudo your $PATH may be changed, and that seems to be the problem.

Just use pip install simplejson (no sudo included) and it is probably going to work.

Use sudo only when you want to affect your whole system.