executa um script python local remotamente em um ambiente

2

Eu gostaria de executar um script python local remotamente, mas primeiro ativar o ambiente apropriado dentro da máquina remota. Por exemplo, se estivesse sendo executado localmente, faria:

source activate myenv
python myscript.py

Eu achei que poderia fazer isso usando o ssh da seguinte forma:

ssh user@host "source activate myenv && python" < ./myscript.py

No entanto, isso não parece funcionar. Produz a mensagem de erro:

bash: activate: No such file or directory

Qual é a melhor maneira de fazer algo assim?

    
por Alex 02.08.2018 / 22:05

2 respostas

0

Você não precisa ativar o env virtual se quiser apenas executar um script e sair. A ativação de um ambiente virtual é apenas uma maneira prática de substituir o executável python, ajustando o PATH 1 . Então, o comando

$ source path/to/myenv/bin/activate
$ python myscript.py
$ deactivate

pode ser efetivamente substituído por

$ path/to/myenv/bin/python myscript.py

Então, ao executar o script via ssh , basta selecionar o caminho correto para o executável python myenv s e você está pronto:

$ ssh user@host "path/to/myenv/bin/python" < ./myscript.py

1 Além disso, a variável de ambiente VIRTUAL_ENV está definida e o nome do env é anexado a PS1 .

    
por 03.08.2018 / 12:04
-1

Se você puder executar source activate myenv no shell, então, ativar deve ser um arquivo em $PATH . encontre esse arquivo e especifique um caminho completo. Deve estar presente no computador remoto. Ou descubra o que este script de ativação faz e apenas envie tarefas para o computador remoto.

    
por 02.08.2018 / 22:24

Tags