Pip: Verifique los permisos del directorio antes de la descarga: pip install

Creado en 22 jul. 2019  ·  4Comentarios  ·  Fuente: pypa/pip

¿Cuál es el problema que resolverá esta función?

Tarda mucho en fallar debido a la recopilación y descarga de un paquete cuando pip install tiene como objetivo un directorio en el que el usuario no tiene permisos para escribir.

Describa la solución que le gustaría

Antes de que pip comience a recopilar un paquete, verifique si el usuario que ejecuta pip tiene permiso para escribir en el directorio de destino.

needs discussion enhancement

Comentario más útil

Algunas consideraciones:

  1. el directorio de destino en cuestión variará según --prefix , --root , --user , o el predeterminado (virtualenv o global).
  2. para la mayoría de los paquetes, es probable que solo importe el directorio site-packages , por lo que solo verificar eso debería estar bien, en mi opinión
  3. puede valer la pena verificar antes de obtener el índice, ya que eso en sí puede llevar algún tiempo dependiendo de las condiciones de la red

Todos 4 comentarios

Estaría feliz de escribir esta característica como mi primera contribución a pip. Nuevo en python y curioso si hay algo ingenuo en esta propuesta de mejora, revisaré el código esta noche.

Hola , @tfolbrecht, siéntete libre de enviar un PR :)
Es probable que el ayudante check_path_owner ayude.

Algunas consideraciones:

  1. el directorio de destino en cuestión variará según --prefix , --root , --user , o el predeterminado (virtualenv o global).
  2. para la mayoría de los paquetes, es probable que solo importe el directorio site-packages , por lo que solo verificar eso debería estar bien, en mi opinión
  3. puede valer la pena verificar antes de obtener el índice, ya que eso en sí puede llevar algún tiempo dependiendo de las condiciones de la red

Muchas gracias a todos por la ayuda.
Bucear a través de las pipas internas en mi tiempo libre ha sido muy divertido.
Estoy constantemente llegando allí.

¿Fue útil esta página
0 / 5 - 0 calificaciones