LINUX.ORG.RU

error: externally-managed-environment

 ,


0

2

При попытке прописать «pip install», вылазиет такая ошибка. error: externally-managed-environment

× This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing –break-system-packages. hint: See PEP 668 for the detailed specification.

Ответ на: комментарий от gruy

Я просто только начал свой путь в работе с линуксом. Раньше все ставилось без проблем, вчера вечером беру ноут и воуп, такая фигня.. Не подскажите как вернуть все обратно?

moznoporusski
() автор топика
Ответ на: комментарий от moznoporusski

Можешь откатить pip до версии 22.3.1 если приспичило, там это еще работает, в 23 уже убрали. И правильно сделали, тебе написали выше про virtual environment — это правильный путь.

otto ★★★
()

Про откатить системный пакет тебе написали. А, если рассуждать в общем, рекомендация такая — не устанавливай никакие системные зависимости ничем кроме пакетного менеджера твоего дистрибутива. В частности ты можешь это понять, когда какой-нибудь pip install скажет что ему не хватает прав, и тебе захочется запустить его от рута — так делать не надо

Если тебе нужно что-то из пипа, или другого не системного менеджера зависимостей (npm, whatever), позаботься о том чтобы зависимости ставились для текущего пользователя, или для отдельного окружения

В питоне есть виртуальные окружения, изолированные друг от друга. Чтобы потрогать, можешь сделать python -m venv venv и source ./venv/bin/activate, но лучше почитать поподробнее и разобраться, как с ними работать

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

когда какой-нибудь pip install скажет что ему не хватает прав, и тебе захочется запустить его от рута — так делать не надо

Для этого pip давно использует --user.

В питоне есть виртуальные окружения, изолированные друг от друга. Чтобы потрогать, можешь сделать python -m venv venv и source ./venv/bin/activate, но лучше почитать поподробнее и разобраться, как с ними работать

За быстро меняющимися пакетами вроде yt-dlp и gallery-dl мэйнтэйнеры дистрибутива не успевают. Поэтому их удобнее ставить через pip, иначе придётся неделями ждать, пока починят. С --user в прошлом были проблемы, но их давно решили. Как сделать виртуальное окружение дефолтным для данного пользователя, чтобы оно было всегда доступным без лишних телодвижений с source?

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

Если ты не собираешься никогда деактивировать виртуальное окружение, то достаточно добавить его в PATH и создать дополнительную переменную окружения VIRTUAL_ENV типа:

export VIRTUAL_ENV="/home/user/defaultvenv"
export PATH="$VIRTUAL_ENV/bin:$PATH"

где-нибудь в ~/.zshenv или в ~\.bashrc, скажем.

Но если ты захочешь поверх этого окружения использовать какое-нибудь другое и потом деактивировать его, то deactivate тебе испортит твое текущее. venv в нынешнем виде не вполне подходит для вложенного использования.

TeopeTuK ★★★★
()
7 мая 2023 г.
Ответ на: комментарий от moznoporusski

Привет

Можешь попробовать поискать в системе файл EXTERNALLY-MANAGED и удалить/переместить его

У меня он встречается в /usr/lib/python{,3.10,3.11}/

Но скорее всего меня закидают тапками, т.к. это не true way

nastey93
()