Virtualenv Желток проблема - PullRequest
11 голосов
/ 30 апреля 2010

yolk -l дает мне информацию о том, что на моем Ubuntu 10.04 установлено 114 пакетов. После создания нового каталога virtualenv с помощью

virtualenv virt_env/virt1 --no-site-packages --clear

Я переключился на это, мое приглашение изменилось, а затем yolk -l снова дает мне те же 114 пакетов.

Что там происходит?

Ответы [ 2 ]

18 голосов
/ 30 апреля 2010

Активация virtualenv работает путем изменения PATH оболочки, поэтому каталог bin / virtualenv стоит первым. Это все . Это означает, что когда вы запускаете "python", он запускает копию virtualenv двоичного файла Python вместо вашего python глобальной системы.

Однако, если у вас установлен глобальный желток, единственным двоичным файлом «желток» в вашей переменной PATH является / usr / local / bin / yolk или что-то подобное; Активация virtualenv не меняет этого (потому что в вашем каталоге virtualenv bin / dir нет скрипта "желток"). И скрипт / usr / local / bin / yolk, естественно, содержит системный интерпретатор Python в строке shebang.

Вот почему установка желтка в virtualenv решает проблему; потому что он добавляет скрипт-желток в вашу папку virtualenv bin / dir с питоном virtualenv в строке shebang.

Если вы не хотите устанавливать yolk в каждом virtualenv, вы также можете просто скопировать скрипт-оболочку yolk из / usr / local / bin или где бы он ни находился в папку bin вашего virtualenv и вручную изменить строку shebang укажите на питона вашего virtualenv. Однако это не сработает с --no-site-packages virtualenv, поскольку оболочка сценария не сможет найти фактические пакеты желтка, которые необходимо импортировать! Если вы хотите использовать yolk внутри --no-site-packages virtualenv, на самом деле ваш единственный выбор - установить его там.

0 голосов
/ 21 июня 2010

Если проблема не связана с вашим путем (я полагаю, что это так), удалите папку lib и scripts в каталоге проекта, чтобы очистить настройки virtualenv. Воссоздайте виртуальную среду, используя опубликованную вами командную строку. Активируйте virtualenv, а затем установите желток.

...