Поиск…


Вступление

Иногда вам может понадобиться использовать диспетчер пакетов 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 если только это колесо не содержит сценарий установки, если это так, его нужно запустить первым.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow