использовать «pip install / uninstall» внутри скрипта python

как, внутри скрипта python я могу установить пакеты с помощью pip? Я не использую os.system, я хочу импортировать pip и использовать его.

5 Solutions collect form web for “использовать «pip install / uninstall» внутри скрипта python”

Не рекомендуется устанавливать пакеты внутри скрипта python, так как он требует прав root. Вы должны отправить дополнительные модули вместе с созданным скриптом или проверить, установлен ли модуль:

try: import ModuleName except ImportError: print 'Error, Module ModuleName is required' 

Если вы настаиваете на том, чтобы установить пакет с помощью pip внутри вашего скрипта, вам придется искать call из модуля subprocessos.system() » устарела).

Нет модуля pip, но вы можете легко создать его, используя вышеописанный метод.

Я думаю, что эти ответы устарели. Фактически вы можете сделать:

 import pip failed = pip.main(["install", nameOfPackage]) 

и вставьте любые дополнительные аргументы в список, который вы передаете main (). Он возвращает 0 (неудачный) или 1 (успех)

Джон

Это комментарий к этому сообщению, который не уместился в пространстве, выделенном для комментариев.

Обратите внимание, что вариант установки пакета может возникнуть внутри самой setup.py . Например, создание таблиц парсера ply и их хранение на диске. Эти таблицы должны быть сгенерированы до setuptools.setup , поскольку их необходимо скопировать в site_packages вместе с установленным пакетом.

Существует опция setup_requires для setuptools.setup , однако это не устанавливает пакеты.

Таким образом, зависимость, которая требуется как для процесса установки, так и для установленного пакета, не будет установлена ​​таким образом.

Размещение такой зависимости внутри install_requires не всегда работает должным образом . Даже если бы это сработало, нужно было бы передать некоторую функцию setuptools.setup , которая должна выполняться между установкой зависимостей в setup_requires и setup_requires установкой самого пакета. Этот подход вложен и, следовательно, против PEP 20 .

Таким образом, существуют два плоских подхода:

  1. дважды запустите setup.py , либо автоматически (предпочтительно), либо вручную (путем уведомления пользователя о том, что таблицы не удалось создать до setuptools.setup .

  2. первый вызов (или другое эквивалентное решение), чтобы установить необходимые зависимости. Затем приступите к созданию таблиц (или что-то, что требуется для предварительной установки), и вызовите setuptools.setup last.

Лично я предпочитаю No.2, потому что No.2 может ввести в заблуждение пользователя, наблюдающего за выходом консоли во время установки, если они уже не знают намерения дважды вызвать setuptools.setup .

Кроме того, любые права, необходимые для установки (например, root, если это необходимо), обязательно присутствуют при запуске setup.py (и именно тогда). Поэтому setup.py можно рассматривать как «канонический» вариант использования для такого типа действий.

Если вы находитесь за прокси-сервером , вы можете установить модуль внутри кода, как показано ниже …

 import pip pip.main(['install', '--proxy=user:password@proxy:port', 'packagename']) 

Вы можете запустить pip внутри скрипта python:

 import pip pip.main(['install', 'packagename']) 
Python - лучший язык программирования в мире.