[英]Python and X11 connection in windows
我正在嘗試從我的遠程Linux服務器啟動和X11連接到我的本地Windows機器。
我已經下載了Xming portable,如果我啟動了一個ssh連接到我的Linux機器並啟動Firefox,它將傳遞給Xming並顯示在我的Windows機器上。
我現在試圖在python中實現相同的功能。 但我不認為我理解正確。
我正在使用以下代碼
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('server-1', username='me', password='xxxxxxx')
stdin, stdout, stderr = ssh.exec_command("firefox")
t = ssh.get_transport ()
chan = t.open_session ()
print(chan.request_x11())
print(stdout.readlines(), stderr.readlines())
time.sleep(100)
只是為了得到以下錯誤:
Error: GDK_BACKEND does not match available displays
我也讀過自己可以啟動的python和Xll會話。 但是現在我只需要將它轉發到我的Xming服務器。
我只了解X11連接的基本功能,我在這里看到的所有示例都是針對python腳本在Linux上運行的。
問候
我想通了我自己。 雖然我不完全了解細節,但我想Xming必須掛鈎到SSH套接字或其他東西。 無論如何,我需要做的就是將命令更改為以下內容
stdin, stdout, stderr = ssh.exec_command("export DISPLAY=localhost:10.0; xterm & firefox &")
和Firefox在Xming中打開。 另請注意,此處將阻止python腳本,直到Firefox應用程序再次關閉。
所以我的最終代碼如下所示
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('server-1', username='me', password='xxxx')
stdin, stdout, stderr = ssh.exec_command("export DISPLAY=localhost:10.0; xterm & firefox & env")
print(''.join(stdout.readlines()), ''.join(stderr.readlines()))
ssh.close()
由於Xming是一個命令行應用程序,因此也應該可以從Python應用程序內部啟動它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.