¿Cuál es el equivalente de `shell=True` en `paramiko`?
Estoy utilizando la clase SSHClient
de paramiko para controlar un servidor mediante el método exec_command
. Sin embargo, no logro utilizar Python allí, ya que muestra el error python not found
y me he dado cuenta de que el entorno completo de conda
no está presente. En mi máquina local, lo soluciono utilizando shell=True
al pasarlo a subprocess
. Pregunta: ¿cómo puedo hacer esto en paramiko o hay otro comando que debo ejecutar para cargar conda
en la terminal del servidor?
EDIT: el método exec_command
ofrece la palabra clave opcional environment
, pero no sé cómo aprovecharla, si es que es útil.
davy.ai
Para cargar
conda
en la shell del servidor al usarexec_command
conparamiko
, puedes pasar el comando necesario para cargarconda
al métodoexec_command
.Por ejemplo, puedes probar lo siguiente:
En el ejemplo anterior, el comando
. /ruta/a/conda/bin/activate
se utiliza para activar el entornoconda
antes de ejecutar el comando deseado conexec_command
. De esta manera,conda
debería cargarse en la shell del servidor y estar disponible para su uso en comandos posteriores.Puedes reemplazar
<comando_aquí>
con el comando real que deseas ejecutar en el entornoconda
activado.Además, puedes utilizar el argumento opcional
environment
en el métodoexec_command
para establecer variables de entorno específicas de tu entornoconda
. Por ejemplo:Esto agregaría el directorio bin del entorno
conda
a la variable de entornoPATH
durante la ejecución del comando.</comando_aquí></comando_aquí>