【问题标题】:Run python code on remote python process在远程 python 进程上运行 python 代码
【发布时间】:2018-12-08 11:21:44
【问题描述】:

我必须在远程 python 进程上运行 python 代码。

通常情况下,我会做的是:

ssh admin@localhost -p 61234

打开一个交互式python控制台,我可以直接执行python代码。

>>> print('3')
3
>>> 

但我想自动执行此操作并将 python 代码作为参数传递给 ssh。

我尝试了以下选项:

ssh admin@localhost -v -p 61234 python logs.py

ssh admin@localhost -v -p 61234 nohup python logs.py

ssh admin@localhost -p 61234

猫日志.py | ssh admin@localhost -p 61234 python -

但所有选项都会出现以下错误:

通道 0 上的 shell 请求失败

logs.py

#!/usr/bin/env python
# tried with and without first line.
print('3')

netstat -anp | grep 61234
tcp        0      0 127.0.0.1:61234         0.0.0.0:*               LISTEN      6/python2.7

有没有办法做到这一点?

【问题讨论】:

  • 也试过了。同样的错误。
  • @Batty 'cat logs.py | ssh admin@localhost python -' 没有 -p 61234 部分
  • 你可以访问远程机器的日志吗?
  • 听起来像mitogen 可以解决的问题。

标签: python


【解决方案1】:

很确定这是矫枉过正,但谁知道呢,也许你以后需要的不仅仅是一个简单的命令。

Paramiko 包是您正在寻找的。该项目充满演示如何并以许多不同的方式。

你会发现最有用的函数是paramiko.client.SSHClient.exec_command

在 SSH 服务器上执行命令。一个新的频道被打开,并且 请求的命令被执行。命令的输入和输出流 作为 Python 文件类对象返回,表示标准输入、标准输出、 和标准错误。

Demos Folder
In-depth Testing
Interactive.py是一个完全交互的TTY(远程终端控制功能)。

【讨论】:

    【解决方案2】:

    PyCharm Professional Edition(来自 JetBrains 的 Python IDE)具有远程开发工具,包括 SSH 远程处理,以及运行远程解释器的能力:

    【讨论】:

      猜你喜欢
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 2013-08-31
      • 2017-04-25
      • 2019-04-13
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多