Как установить Python (dev) зависимостей глобально, чтобы мне не приходилось переустанавливать их в каждом venv? - PullRequest
0 голосов
/ 19 апреля 2020

Есть несколько Python зависимостей, которые я хотел бы быть доступными в каждой venv (виртуальной среде), которую я создаю для каждого проекта. Например черный, flake8 и pytest. Возможно ли это, и если да, то как этого добиться?

Я хотел бы установить эти три один раз под моей основной установкой Python, вместо этого мне придется переустанавливать их все в каждом венге, который я создаю, когда начинаю новый проект. Это особенно раздражает, когда используется VSCode, который выдает всплывающие окна с жалобами на «Linter flake8 не установлен» или «... черный не установлен», et c. когда вы переключаетесь на venv, где вы не установили эти пакеты.

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Одно из возможных решений:

  • Деактивировать виртуальную среду.
  • Установите все пакеты, которые вам нужны для глобального доступа.
  • Снова активируйте виртуальную среду.
  • убедитесь, что вы включили наследование пакета от глобального

Примечание: Пожалуйста, обратитесь также к этим потокам SO для получения дополнительной информации.

0 голосов
/ 20 апреля 2020

Позвольте мне ответить на мой собственный вопрос на основе комментария от @ jonrsharpe.

Предполагая, что вы хотите, чтобы черный, flake8 и pytest были доступны «глобально», или, другими словами, вы хотите, чтобы эти пакеты были в каждой новой версии что вы создаете, но не хотите повторять pip install black flake8 pytest каждый раз. Вот что вы можете сделать:

  1. установить пакеты один раз под вашей основной Python версией (которую вы хотели бы использовать для своих venvs. ПРИМЕЧАНИЕ: у вас есть несколько Установлено Python версий.)
  2. при создании нового venv используйте опцию --system-site-packages. Например:
python -m venv --system-site-packages .venv/dev
активируйте ваш venv, т.е. source .venv/dev/bin/activate и проверьте w / pip list, что пакеты доступны
...