Как исправить путь Python по умолчанию после установки Virtualenv - PullRequest
0 голосов
/ 18 марта 2012

Я установил virtualenv через sudo pip install virtualenv и создал несколько сред. Но теперь я обнаружил, что мой «глобальный» путь Python по умолчанию полностью исчез.

В новом терминале я вижу вывод вроде:

user@localhost:~$ sudo pip install django
Requirement already satisfied (use --upgrade to upgrade): django in /usr/local/lib/python2.7/dist-packages
Cleaning up...
user@localhost:~$ ls /usr/local/lib/python2.7/dist-packages/django
bin   contrib  db        forms  __init__.py   middleware  template      test   views
conf  core     dispatch  http   __init__.pyc  shortcuts   templatetags  utils
user@localhost:~$ python
Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django
>>> 

Что здесь происходит? Как исправить мою глобальную установку Python, чтобы он мог видеть свои установленные пакеты?

Ответы [ 3 ]

1 голос
/ 18 марта 2012

Эта проблема была моей собственной ошибкой.Я случайно запустил virtualenv --no-site-packages . в своем домашнем каталоге, создавая папки, такие как ~ / bin, ~ / local, ~ / lib, и Python искал свои пакеты там, где их не было.Удаление этих каталогов устранило проблему.

0 голосов
/ 18 марта 2012

Вы должны устанавливать только virtualenv с помощью sudo, все остальное должно выполняться без sudo.

Вы также должны использовать --no-site-packages, так как это гарантирует, что в вашей среде нет конфликтующих версий пакетов.

Правильный способ сделать это:

$ sudo apt-get install python-virtualenv
$ virtualenv --no-site-packages django_env
$ source django_env/bin/activate
(django_env)$ pip install -U django

Если вам нужно что-то из вашего глобального пути, вы должны установить его в вашей виртуальной среде.Таким образом, когда вы заморозите свою среду , вы получите только то, что требуется для вашего приложения.

Вы можете установить yolk, в котором будут перечислены пакеты вваше окружение:

(django_env)$ pip install yolk
(django_env)$ yolk -l
0 голосов
/ 18 марта 2012

просто установите переменную среды

PYTHONPATH=path1;path2;etc;
echo $PYTHONPATH

, и она должна использовать путь, который вы указали

...