Как установить пакет pip во всем мире вместо локального?

Я пытаюсь установить пакет flake8 с помощью pip3, и кажется, что он отказывается устанавливать, потому что он уже установлен в одном локальном расположении.

Как я могу заставить его установить глобально (системный уровень)?

pip3 install flake8
Requirement already satisfied (use --upgrade to upgrade): flake8 in ./.local/lib/python3.4/site-packages

Обратите внимание, что я предпочел бы общее решение (которое должно работать на Debian, OS X, возможно, даже на Windows), которое должно использоваться на любой платформе, поэтому я не хочу сам указывать назначение.

По какой-то странной причине он ведет себя, как я уже указал --user, который в моем случае я этого не делал.

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

Отказ от ответственности: во время экспериментов виртуальные среды не использовались и не пострадали.

Ответ 1

Почему бы вам не попробовать sudo с флагом H? Это должно сработать.

sudo -H pip install flake8

Обычный sudo pip install flake8 попытается использовать свой домашний каталог. -H инструктирует его использовать системный домашний каталог. Больше информации на fooobar.com/questions/724033/...

Ответ 2

Вы используете virtualenv? Если да, отключите virtualenv. Если вы не используете, он уже широко установлен (системный уровень). Попробуйте обновить пакет.

pip install flake8 --upgrade

Ответ 3

Может быть, --force-reinstall будет работать, иначе --ignore-installed должен сделать трюк.

Ответ 4

Я на самом деле не вижу твоей проблемы. Глобально - это любой пакет, который находится в папке пакета сайта вашего пути python3.

Если вы хотите использовать его только локально, вам необходимо настроить virtualenv и переустановить пакеты с активированной виртуальной средой.