#python #path #pip #virtualenv
#python #путь #pip #virtualenv
Вопрос:
Я установил pip3 virtualenv и установил на него пару пакетов, активировав virtualenv. В это время команда which python
указывает путь к virtualenv. допустим , ..../env/bin/python
Но после деактивации и повторного ввода пути (повторной активации) which python
используется глобальный путь /usr/bin/python
, который не позволяет использовать пакеты, которые я установил в virtualenv. Любая мысль об этом?
Комментарии:
1. Вот как это должно работать. Я не думаю, что вы поняли, как
pip
работают изолированные среды.2. Да, DroidX86 прав, чего вы ожидаете? Вы можете использовать пакеты виртуальной среды, только пока она активирована.
3. Я понимаю, как именно они работают. глобальная
PATH
переменная изменяется после активации. Но он по — прежнему использует глобальный путь python ниже/usr/bin
. Возможно, вы не понимаете вопроса. Прочтите еще раз
Ответ №1:
Обычно этого не происходит. после повторной активации он должен выбрать из virtualenv python.
Мои два цента.
- Virtualenv добавляет python в конец переменной PATH. таким образом, usr /bin /python будет впереди найден при запуске.
- Это также может произойти, если в вашем файле .bash_profile возникли проблемы. Это может быть также, если virtual env создан в python3, и по умолчанию он будет иметь python2.7
Итак, вам нужно проверить оба пути и оба env global и virtual env one.
Ответ №2:
Это была глупая ошибка. virtualenv поддерживает скрипт в каталоге ..../env/bin
с именем activate
, а файл использует абсолютный путь к export PATH
и угадывает, что может пойти не так.
Допустим, абсолют PATH
равен /home/user/test/env/bin
И если вы переименуете каталог test
в test2
. Активирующий файл по-прежнему использует старый абсолютный путь. Поэтому вам нужно вручную изменить значение PATH
.../env/bin/activate
и изменить VIRTUAL_ENV
переменную на ваш новый абсолютный путь