LINUX.ORG.RU

Странное поведение venv

 


0

1

Когда виртуальное окружение создается через

python -m venv venv
source venv/bin/activate

проблем никаких нет, но после условного ребута системы окружение как бы и активируется, но как будто и нет. Причем никаких перемещений и переименований venv/ не было.

pip freeze возвращает в окружении все пакеты, установленные лишь в системе, но среду он даже не затронул.

Сам я новичок в программировании на python, только изучаю азы.



Последнее исправление: yukiome (всего исправлений: 1)
Ответ на: комментарий от cobold

Да, это понятное дело, но и после активации окружения не выдает то, что надо. Решение в виде poetry нашлось, но все же интересно выяснить возможные причины.

yukiome
() автор топика
Последнее исправление: yukiome (всего исправлений: 1)

В приведённых командах пути относительные, то есть их результат зависит от текущей директории. Возможно, после перезагрузки она изменилась?

Я обычно использую пути типа ~/venv/$name для своих вирутальных окружений. (И ещё для системного питона использую параметр --system-site-packages для venv, но это зависит от целей)

annulen ★★★★★
()
Ответ на: комментарий от yukiome

Вам бы не помешало разобраться, что именно делает команда source venv/bin/activate. На самом деле, там нет никакой магии. Все что рельно изменяется, это значения нескольких переменных окружения, в частности переменная PATH, используя которую ваш шелл ищет запускаемые программы, в нашем случае python, pip, pytest и так далее. Разумеется, эти изменения касаются только текущей сессии конкретного шелла.

FishHook
()