When virtuenv
activate
s, it changes several env variables, such as PATH
,
PYTHONHOME
, PS1
, and so on, to point desired python binary, library, etc. You can change the script to change PYTHONPATH
to use your user site-packages, namely ~/.local/lib/python2.7/site-packages
, and possibly your system site-packages. With this setting, pip will search for library in virtual env, and then failover to user/system site-packages. Note that normally activate script does not change PYTHONPATH
at all.
That is, add the following lines in your virtual_env/bin/activate
.
# in activate script
# in deactivate function
if [ -n "$_OLD_VIRTUAL_PYTHONPATH" ] ; then
PYTHONPATH="$_OLD_VIRTUAL_PYTHONPATH"
export PYTHONPATH
unset _OLD_VIRTUAL_PYTHONPATH
fi
# in activate section
if [ -n "$PYTHONPATH" ] ; then
_OLD_VIRTUAL_PYTHONPATH="$PYTHONPATH"
PYTHONPATH=$HOME/.local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages
fi