Python Language
Использование модуля «pip»: диспетчер пакетов PyPI
Поиск…
Вступление
Иногда вам может понадобиться использовать диспетчер пакетов pip внутри python, например. когда некоторый импорт может увеличить ImportError
и вы хотите обработать исключение. Если вы распаковываете на Windows Python_root/Scripts/pip.exe
внутри, то хранится файл __main__.py
, где импортируется main
класс из пакета pip
. Это означает, что пакет pip используется всякий раз, когда вы используете исполняемый файл pip. Для использования pip в качестве исполняемого файла см .: pip: PyPI Package Manager
Синтаксис
- pip. <function | attribute | class>, где функция является одной из следующих:
- автополный ()
- Завершение команды и опции для основного парсера параметров (и опций) и его подкоманд (и параметров). Включить, используя один из сценариев оболочки завершения (bash, zsh или fish).
- check_isolated (арг)
- param args {list}
- возвращает {boolean}
- create_main_parser ()
- возвращает {pip.baseparser.ConfigOptionParser object}
- Основной (арг = нет)
- param args {list}
- возвращает {integer} Если не сработало, чем возвращает 0
- parseopts (арг)
- param args {list}
- get_installed_distributions ()
- возвращает {list}
- get_similar_commands (имя)
- Имя команды автокорректно.
- param name {string}
- возвращает {boolean}
- get_summaries (упорядоченная = True)
- Умножается сортировка (имя команды, сводка команд) кортежей.
- get_prog ()
- возвращает {строка}
- dist_is_editable (расстояние)
- Является ли дистрибутив доступной для редактирования установкой?
- param dist {object}
- возвращает {boolean}
- commands_dict
- attribute {dictionary}
- автополный ()
Пример использования команд
import pip
command = 'install'
parameter = 'selenium'
second_param = 'numpy' # You can give as many package names as needed
switch = '--upgrade'
pip.main([command, parameter, second_param, switch])
Обязательны только необходимые параметры, поэтому возможны и pip.main(['freeze'])
и pip.main(['freeze', '', ''])
.
Пакетная установка
В одном вызове можно передавать много имен пакетов, но если одна установка / обновление не выполняется, весь процесс установки останавливается и заканчивается статусом «1».
import pip
installed = pip.get_installed_distributions()
list = []
for i in installed:
list.append(i.key)
pip.main(['install']+list+['--upgrade'])
Если вы не хотите останавливаться при сбое некоторых установок, вызовите установку в цикле.
for i in installed:
pip.main(['install']+i.key+['--upgrade'])
Обработка исключения ImportError
Когда вы используете файл python как модуль, нет необходимости всегда проверять, установлен ли пакет, но он по-прежнему полезен для скриптов.
if __name__ == '__main__':
try:
import requests
except ImportError:
print("To use this module you need 'requests' module")
t = input('Install requests? y/n: ')
if t == 'y':
import pip
pip.main(['install', 'requests'])
import requests
import os
import sys
pass
else:
import os
import sys
print('Some functionality can be unavailable.')
else:
import requests
import os
import sys
Силовая установка
Многие пакеты, например, в версии 3.4, будут работать на 3.6 просто отлично, но если для конкретной платформы нет дистрибутивов, они не могут быть установлены, но есть обходное решение. В .whl файлах (называемых колесами) соглашение об именах решает, можно ли устанавливать пакет на указанной платформе. Например. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
[ scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
] - [версия] - [интерпретатор python] - [python-interpreter] - [Операционная система] .whl. Если имя файла колес изменено, поэтому платформа соответствует, pip пытается установить пакет, даже если версия платформы или python не соответствует. Удаление платформы или интерпретатора от имени приведет к ошибке в новейшей версии модуля pip kjhfkjdf.whl is not a valid wheel filename.
,
Альтернативный файл .whl может быть распакован с использованием архиватора как 7-zip. - Обычно он содержит папку метаданных и папку с исходными файлами. Эти исходные файлы могут быть просто распакованы в каталог site-packges
если только это колесо не содержит сценарий установки, если это так, его нужно запустить первым.