Instale Pip en el directorio de destino personalizado y excluya dependencias específicas

Estoy buscando un método para usar pip o similar para instalar una lista de paquetes de python en un directorio de destino personalizado (ej ./mypath/python/pkgs/), pero también excluir / en lista negra las dependencias específicas .

Quiero excluir dependencias específicas ya que ya se encuentran en una ruta de instalación diferente (por ejemplo, una instalación de anaconda). No tengo el privilegio de agregar paquetes a la instalación predeterminada de Python (ni quiero hacerlo).

Actualmente estoy usando las opciones -r y -t de pip. Pero no han encontrado una manera de excluir paquetes específicos.

Un comando pip como este sería ideal:

pip install --log pip.log -r req.txt -t /mypath/pypkgs/ --exclude exclude.txt 

--no-deps no es una opción ya que necesito algunas de las dependencias.

Actualmente estoy buscando un script de Python para hacer instalaciones de pip que incluyan dependencias que no necesito a través de:

 pip install --log pip.log -r req.txt -t /mypath/python/pkgs/ 

y luego (automáticamente) eliminar las dependencias innecesarias una vez finalizada la instalación pip.

Espero que alguna combinación de comandos pip pueda lograr lo que estoy buscando de forma directa. Estoy usando pip 7.1.2. ¡Gracias!

Similar, pero no estoy actualizando y quiero especificar una ruta de destino:

pip: paquete de actualización sin actualizar dependencia particular

Ante un problema similar, y al usar un shell bash en ejecución, logré excluir paquetes específicos con

 pip install $(grep -ivE "pkg1|pkg2|pkg3" requirements.txt) 

donde pkg1 y así sucesivamente son los nombres de los paquetes a excluir.

Creo que esto se puede lograr esencialmente en varios pasos, asumiendo que estás usando virtualenv o similar …

  • Si primero realiza una pip freeze > requirements.txt normal pip freeze > requirements.txt Requirements.txt obtendrá todas las dependencias transitivas (por ejemplo, sin excluir nada).

  • Ahora edite Requirements.txt, elimine los paquetes que desea excluir …

  • Finalmente, en un nuevo entorno haga pip install -r requirements.txt -t ... --no-deps . Voila: has instalado las dependencias que querías, excluyendo las específicas.