Привет, ЛОР.
Debian 12.4. Делаю проект на python. Установил venv, засорсил aсtivate, поставил туда через pip несколько пакетов. Все работает. Структура директорий:
.venv/
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── Activate.ps1
│ ├── flask
│ ├── fonttools
│ ├── pip
│ ├── pip3
│ ├── pip3.11
│ ├── pyftmerge
│ ├── pyftsubset
│ ├── py.test
│ ├── pytest
│ ├── python -> python3
│ ├── python3 -> /usr/bin/python3
│ ├── python3.11 -> python3
│ └── ttx
├── include
│ └── python3.11
├── lib
│ └── python3.11
├── lib64 -> lib
├── pyvenv.cfg
└── share
└── man
Было несколько обновлений дебиана, не отслеживал. Возвращаюсь к проекту, сорсю activate, чтобы попасть в терминале в venv проекта, а дальше начинаются странности. Во-первых, я не могу запустить проект, потому, что установленные ранее через pip библиотеки не видит - command not found
. Во-вторых, я не могу установить заново эти библиотеки или установить другие, потому что выскакивает дебиаоновское предупреждение, когда я в venv:
error: externally-managed-environment
Хотя
/home/user/projects/myproject/.venv/bin:/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
и
which python3
/usr/bin/python3
which pip
/usr/bin/pip
При этом же, прямое обращение к python в venv срабатывает
.venv/bin/python3 -m venv pip instal somepackage
...лог успешной установки...
Насколько я могу судить исходя из ситуации, дело в том, что в путях при активации виртуальной среды происходит какая-то ошибка, из-за чего вместо питона в виртуалке задействуется общесистемный питон, несмотря на то, что в PATH
путь к виртуалке стоит раньше.
Как пофиксить?