17

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)
bentzy
  • 301
  • 2
  • 4
  • 15
  • I haven't used virtualenvwrapper, but with virtualenv I use the --no-site-packages option. Can mkvirtualenv pass this option? – Shawn H Feb 02 '13 at 19:31
  • Yes - but tis is not the issue. As of virtualenv 1.7, the --no-site-packages has become the default and is deprecated. Im using 1.8.2. Anyway - I've also tried that and still didn't work as expected... – bentzy Feb 02 '13 at 19:48
  • Try printing `sys.path` and see what's there. – Aman Feb 02 '13 at 22:54
  • What does `pip freeze` say? – Bibhas Debnath Feb 05 '13 at 15:54

2 Answers2

19

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.

Hugo Lopes Tavares
  • 28,528
  • 5
  • 47
  • 45
  • 1
    Also the ``--user`` option may make sense, which will install it in your ``~/.local/lib/...`` directory. This does not require r00t privileges. – kmiklas Jun 26 '19 at 17:56
11

Already satisfied means that you already install "it".

try: pip uninstall simplejson

and then: pip install simplejson

Shadi Serhan
  • 309
  • 3
  • 9