什么相当于"paramiko"中的"shell=True"



我使用paramiko的SSHClient通过exec_command方法控制服务器。然而,我没有在那里使用python,因为它说python not found,我意识到整个conda环境都不在那里。在我的本地机器上,我用传递给subprocessshell=True绕过它。问题:我该如何在paramiko上执行此操作,或者,我是否应该运行另一个命令来将conda加载到服务器的shell中。

编辑:exec_command提供了environment可选关键字,但如果它有用,我不知道如何利用它。

感谢@CharesDuffy对"不要喂我,教我怎么钓鱼;风格,我解决了如下问题:

对于要加载的conda/miniconda,我用source ~/miniconda3/bin/activate;作为命令的开头。

浓缩点:

  • 对于永久解决方案,序言可以添加到.profile.bash_profile.bash_login,这是ssh’ing时默认加载的内容。如果你有一个新的安装,例如虚拟机,这些文件一开始就不存在
  • 获取conda文件是最重要的(而不是执行它(

表面上看,subprocess模块的shell=TrueKwarg正在幕后做这样的事情。

最新更新