web-dev-qa-db-fra.com

Comment activer le transfert X11 dans la session PyCharm SSH?

La question

J'essaie d'activer le transfert X11 par le biais du PyCharm Terminal SSH qui peut être exécuté via

"Tools -> Start SSH session..."

Malheureusement, il semble qu'il n'y ait aucun moyen de spécifier les indicateurs comme je le ferais dans mon shell pour activer le transfert X11:

ssh -X user@remotehost

Connaissez-vous un moyen intelligent d'y parvenir?


Solution sale actuelle

Le seul bidouillage que j’ai trouvé est d’ouvrir une connexion ssh externe avec transfert X11 et de mettre à jour manuellement la variable d’environnementDISPLAY.

Par exemple, je peux exécuter ma session SSH externe:

vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0

Et ensuite, sur mon terminal PyCharm:

export DISPLAY=localhost:10.0

ou mettez à jour leDISPLAYvariable dans la configuration Run/Debug , si je veux exécuter le programme à partir de l'interface graphique.

Cependant, je n'aime vraiment pas cette solution consistant à utiliser un terminal ssh externe et à mettre à jour manuellement la variableDISPLAYet je suis sûr qu'il existe un meilleur moyen d'y parvenir!

Toute aide serait très appréciée.


P.s. Faire un alias comme:

alias ssh='ssh -X'

dans mon .bashrc ne force pas PyCharm à activer le transfert X11.

14
Gengiolo

J'ai donc pu corriger jsch et tester cela, et cela a très bien fonctionné. 

Utiliser le transfert X11

Pour utiliser le transfert X11 dans PyCharm, procédez comme suit:
- Installez un serveur X si vous n'en avez pas déjà un. Sous Windows, cela peut être le projet VcXsrv, sous Mac OS X, le projet XQuartz.
- Télécharger ou compiler le paquet jsch. Voir les instructions pour la compilation ci-dessous.
- Sauvegardez jsch-0.1.54.jar dans le dossier lib de votre pycharm et remplacez-le par la version corrigée. Démarrez Pycharm avec un environnement distant et assurez-vous de supprimer toutes les instances de la variable d'environnement DISPLAY que vous avez éventuellement définies dans la configuration d'exécution/de débogage.

Compilation

Voici ce que vous devez faire sur un système Mac OS ou Linux sur lequel Maven est installé. 

wget http://sourceforge.net/projects/jsch/files/jsch/0.1.54/jsch-0.1.54.Zip/download
unzip download
cd jsch-0.1.54
sed -e 's|x11_forwarding=false|x11_forwarding=true|g' -e 's|xforwading=false|xforwading=true|g' -i src/main/Java/com/jcraft/jsch/*.Java
sed -e 's|<version>0.1.53</version>|<version>0.1.54</version>|g' -i pom.xml
mvn clean package

Cela créera jsch-0.1.54.jar dans le dossier target

 X11 Enabled

4
Tarun Lalwani

En parallèle, ouvrez MobaXTerm et connectez-vous lorsque la case de transfert X11 est activée. Désormais, PyCharm transmettra l'affichage via le serveur MobaXTerm X11. Ceci jusqu'à ce que PyCharm ajoute cette fonctionnalité «simple».

Définissez également la variable d’environnement DISPLAY dans la configuration d’exécution PyCharm comme suit: DISPLAY = localhost: 10.0 (Le côté droit doit être obtenu avec la commande echo $ DISPLAY du côté serveur)

0
Hesham Eraqi