Я начинаю использовать virtualenv и virtualenvwrapper в моих проектах.
После активации virtualenv с помощью команды workon
я установил следующие пакеты с помощью pip install -U <package>
:
$ lssitepackages
django pip
Django-1.3-py2.7.egg-info pip-1.0.1-py2.7.egg-info
easy-install.pth setuptools-0.6c11-py2.7.egg
fabric setuptools.pth
Fabric-1.0.1-py2.7.egg-info south
geopy South-0.7.3-py2.7.egg-info
geopy-0.94.1-py2.7.egg-info
Проблема здесь (запуск команд с активированным virtualenv):
$ whereis python
python: /usr/bin/python2.6 /usr/bin/python /usr/bin/python2.7 /etc/python2.6 /etc/python /etc/python2.7 /usr/lib/python2.6 /usr/lib/python2.7 /usr/lib64/python2.6 /usr/lib64/python2.7 /usr/local/lib/python2.6 /usr/local/lib/python2.7 /usr/include/python2.6 /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
$ whereis django-admin
django-admin: /usr/bin/django-admin /usr/local/bin/django-admin.py /usr/share/man/man1/django-admin.1.gz
$ whereis fab
fab: /usr/local/bin/fab
Мой virtualenv он не использует локальные пакеты!
Как мне заставить virtualenv использовать локальный Python и локальную версию пакетов вместо пакетов моей машины?
Обновление - возможное решение
Я создал новый virtualenv с mkvirtualenv --no-site-packages <name>
, и теперь я получил следующие результаты:
$ which python
/home/user/.virtualenvs/VIRTUALENVNAME/bin/python
$ which django-admin
/usr/bin/django-admin
$ which django-admin.py
/home/user/.virtualenvs/VIRTUALENVNAME/bin/django-admin.py
$ which fab
/home/user/.virtualenvs/VIRTUALENVNAME/bin/fab
Звучит так, будто теперь это работает ... за исключением команды "django-admin".