2017-06-28 5 views
1

私は、ターミナルで次のコマンドラインを使用してリモートデスクトップに私のローカルマシンで書かれたPythonスクリプトを実行しようとしています:ローカルとリモートの両方のマシンにインストールされているAnacanoda3下のPython 3プロットが出力の一部である場合、リモートデスクトップのローカルマシンでpythonスクリプトを実行しているときに "QXcbConnection"エラーメッセージを処理する方法?

cat myscript.py | ssh [email protected] python 

を。プロットを表示しようとしたときに、ここでは、エラーメッセージは、実行の途中である:

QXcbConnection:理由とどのようにそれを修正することができるもの

を表示するには接続できませんでしたか?同じエラーメッセージに関連する他の投稿がいくつかありましたが、理由と用途は異なります。

+0

「cat myscript.py | ssh -X [email protected] python' – eyllanesc

+0

これは、ローカルマシンでスクリプトを探すのではなく、リモートマシンでスクリプトの場所を見つけようとする以外は機能します。言い換えれば、私のスクリプトは現在のローカルマシンにあり、リモートデスクトップ上で実行したいだけです。 – Allan

+0

try: 'cat myscript.py | ssh "DISPLAY =:0" [email protected] python' – eyllanesc

答えて

1

ウィンドウ共有をアクティブにするには、-Xパラメータを使用する必要があります。

cat myscript.py | ssh -X [email protected] python 
+0

これは興味深いです。あなたが正しいです。最初のコマンドが機能します。しかし、コマンドラインについて奇妙なことは、メインコードの中で補助的なPythonコードを処理していないことです。言い換えると。コードが "import settings"という行に到達すると同じ名前のローカルマシンに存在するリモートマシンのファイル "settings.py"を探す必要があると考えています。このファイルは値を初期化します。コマンドを実行すると、リモートマシンにあるバージョン内の値が使用されます。 – Allan

+0

"settings.py"モジュールの名前を変更するのではなく、ローカルマシン内でインポートを探すようにコマンドを指示する方法はありますか? – Allan

+1

その猫はファイルの内容をコピーして、それを実行しません。例えば、そのテキストはimport mymoduleと呼ばれ、リモートのpythonはリモートのフォルダを調べます。pythonはそのパッケージが他の場所にあることを知りません。 – eyllanesc

関連する問題