我使用paramiko
的SSHClient通过exec_command
方法控制服务器。然而,我没有在那里使用python,因为它说python not found
,我意识到整个conda
环境都不在那里。在我的本地机器上,我用传递给subprocess
的shell=True
绕过它。问题:我该如何在paramiko上执行此操作,或者,我是否应该运行另一个命令来将conda
加载到服务器的shell中。
编辑:exec_command
提供了environment
可选关键字,但如果它有用,我不知道如何利用它。
感谢@CharesDuffy对"不要喂我,教我怎么钓鱼;风格,我解决了如下问题:
对于要加载的conda/miniconda,我用source ~/miniconda3/bin/activate;
作为命令的开头。
浓缩点:
- 对于永久解决方案,序言可以添加到
.profile
、.bash_profile
或.bash_login
,这是ssh’ing时默认加载的内容。如果你有一个新的安装,例如虚拟机,这些文件一开始就不存在 - 获取conda文件是最重要的(而不是执行它(
表面上看,subprocess
模块的shell=True
Kwarg正在幕后做这样的事情。