Buscar..


Introducción

A veces es posible que necesite usar el administrador de paquetes pip dentro de Python, por ejemplo. cuando algunas importaciones pueden aumentar ImportError y desea manejar la excepción. Si desembala en Windows Python_root/Scripts/pip.exe dentro del archivo __main__.py se almacena, donde se importa la clase main del paquete pip . Esto significa que el paquete pip se usa siempre que uses el ejecutable pip. Para el uso de pip como ejecutable, consulte: pip: PyPI Package Manager

Sintaxis

  • pip. <function | attribute | class> donde function es uno de:
    • autocompletar ()
      • Finalización de comandos y opciones para el analizador de opciones principal (y opciones) y sus subcomandos (y opciones). Habilite mediante la obtención de uno de los scripts de shell de finalización (bash, zsh o fish).
    • check_isolated (args)
      • param args {lista}
      • devuelve {booleano}
    • create_main_parser ()
      • devuelve el objeto {pip.baseparser.ConfigOptionParser}
    • main (args = None)
      • param args {lista}
      • devuelve {entero} Si no falla, devuelve 0
    • parseopts (args)
      • param args {lista}
    • get_installed_distributions ()
      • devuelve {lista}
    • get_similar_commands (nombre)
      • Nombre del comando auto-correcto.
      • nombre de parámetro {cadena}
      • devuelve {booleano}
    • get_summaries (ordenado = Verdadero)
      • Rendimientos ordenados (nombre del comando, resumen del comando) tuplas.
    • get_prog ()
      • devuelve {cadena}
    • dist_is_editable (dist)
      • ¿Es la distribución una instalación editable?
      • param dist {objeto}
      • devuelve {booleano}
    • comandos_dicto
      • atributo {diccionario}

Ejemplo de uso de comandos

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])

Solo los parámetros necesarios son obligatorios, por lo que tanto pip.main(['freeze']) como pip.main(['freeze', '', '']) son aceptables.

Instalación por lotes

Es posible pasar muchos nombres de paquetes en una llamada, pero si falla una instalación / actualización, todo el proceso de instalación se detiene y termina con el estado '1'.

import pip

installed = pip.get_installed_distributions()
list = []
for i in installed:
    list.append(i.key)

pip.main(['install']+list+['--upgrade'])

Si no desea detenerse cuando fallan algunas instalaciones, llame a la instalación en bucle.

for i in installed:
        pip.main(['install']+i.key+['--upgrade'])

Manejo de la excepción de ImportError

Cuando usa el archivo python como módulo, no es necesario verificar siempre si el paquete está instalado, pero sigue siendo útil para los scripts.

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

Fuerza de instalación

Muchos paquetes, por ejemplo, en la versión 3.4 se ejecutarán en 3.6 muy bien, pero si no hay distribuciones para una plataforma específica, no se pueden instalar, pero hay una solución alternativa. En la convención de nombres de los archivos .whl (conocidos como ruedas), decida si puede instalar el paquete en la plataforma especificada. P.ej. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [nombre_paquete] - [versión] - [intérprete de python] - [intérprete de python] - [Sistema operativo] .whl. Si se cambia el nombre del archivo de rueda, para que la plataforma coincida, pip intenta instalar el paquete incluso si la plataforma o la versión de python no coinciden. Eliminar la plataforma o el intérprete del nombre generará un error en la versión más reciente del módulo pip kjhfkjdf.whl is not a valid wheel filename. .

Alternativamente, el archivo .whl se puede desempaquetar usando un archivador como 7-zip. - Por lo general, contiene la meta carpeta de distribución y la carpeta con archivos de origen. Estos archivos de origen se pueden desempaquetar simplemente en el directorio de site-packges menos que esta rueda contenga el script de instalación, de ser así, debe ejecutarse primero.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow