Я устанавливаю новый пакет Python, используя pip.Я хочу установить этот пакет во всех моих текущих виртуальных средах одной командой.Возможно ли это, и если да, то как мне это сделать?
В настоящее время, когда я хочу установить новый пакет Python "xyz" в виртуальной среде, я активирую этот venv, а затем использую стандартную установку pip.«XYZ» в командной строке.Однако он устанавливается только в активированной в данный момент виртуальной среде.Конечно, это большая часть наличия виртуальных сред.
Если я хочу установить пакет "xyz" во всех моих виртуальных средах, я должен активировать-установить-деактивировать для каждой из моих сред.
Я бы хотел избежать этого безопасного, но трудоемкого процесса и просто установить новый пакет "xyz" во все мои текущие виртуальные среды с помощью одной команды.
Например: я перечисляю свои существующиевиртуальные среды (на моей локальной машине):
список conda env
среды conda:
base * C: \ ProgramData \ Anaconda3 cntk C: \ ProgramData \ Anaconda3 \envs \ cntk fastai C: \ ProgramData \ Anaconda3 \ envs \ fastai
Пакет, который я хочу установить во всех моих средах (base, cntk, fastai), является pydicom.
λ активировать base
(базовый) λ pip install pydicom
(базовый) λ ipython Python 3.7.3 (по умолчанию, 24 апреля 2019 г., 15:29:51) [MSC v.1915 64 бит (AMD64)] Введите «авторское право», «кредиты» или «лицензия» для получения дополнительной информацииIPython 7.5.0 - улучшенный интерактивный Python.Тип '?'для справки.
В [1]: импорт pydicom В [2]:
(базовый) λ conda деактивировать
λ активировать cntk
(cntk) λ ipython
Python 3.6.8 | Anaconda, Inc. |(по умолчанию 21 февраля 2019, 18:30:04) [MSC v.1916 64 бит (AMD64)] Для получения дополнительной информации введите «copyright», «credits» или «license» IPython 7.4.0 - улучшенный интерактивный Python.Тип '?'для справки.
В [1]: импорт pydicom
ModuleNotFoundError Traceback (последний вызов был последним) в ----> 1 import pydicom
ModuleNotFoundError:Нет модуля с именем 'pydicom'
В [2]:
Это все хорошо, venv делает свою работу.
λ conda activit cntk
(cntk) λ pip install pydicom
Сбор pydicom с использованием cached https://files.pythonhosted.org/packages/43/88/d3c419ab2e753e7651510882a53219373e78fb55294cb247dffd3934ea55/pydicom-1.2.2-py2.py3-none-any.whl Установка собранных пакетов: pydicom Успешно установленный pydicom-1.2.2
(cntk)λ ipython
Python 3.6.8 | Anaconda, Inc. |(по умолчанию 21 февраля 2019, 18:30:04) [MSC v.1916 64 бит (AMD64)] Для получения дополнительной информации введите «copyright», «credits» или «license» IPython 7.4.0 - улучшенный интерактивный Python.Тип '?'для справки.
В [1]: import pydicom
В [2]:
Очевидно, на этот раз это сработало, так как я установил pydicom в venv.
В идеале должна быть команда типа: $ pip install -,
или
$ pip install - все
, которая устанавливаетк предоставленному списку venv или всех доступных venvs.
Я думал об обходных путях, таких как использование списка $ conda env и последующий анализ выходных данных.Использование простого скрипта для последовательной установки в каждую из перечисленных версий.Эта цепочка мыслей подводит меня к моему подвопросу:
В: Возможно ли установить пакет Python в виртуальную среду без предварительной активации этого venv?
Я сомневаюсь тамэто простое однострочное решение (хотя это было бы неплохо), поэтому приветствуются предложения по обходным путям.
Также приветствуются предупреждения, если мое намерение автоматически установить новый пакет Python для всех venvs не соответствует лучшимпрактика.