web-dev-qa-db-fra.com

Configuration de Visual Studio Code pour un interpréteur Python distant via SSH

J'ai une boîte Vagrant avec ArchLinux et Python qui utilise un environnement virtuel par projet (en utilisant une certaine version de Python). Je souhaite configurer VSC pour exécuter/déboguer ces projets Python. J'ai monté le répertoire contenant mes projets (avec sshfs), de sorte que je n'ai pas à m'inquiéter de la synchronisation.

Avec PyCharm, la configuration n’est que dans son IDE. Comment puis-je le configurer pour VSC en utilisant SSH? Quels sont les autres plugins nécessaires pour travailler avec Python?

Merci d'avance.

PS1: PyCharm est un excellent outil, mais il nécessite beaucoup de ressources, près de 1 Go de RAM.

PS2: J'ai lu cet article mais ce n'est pas clair pour moi, un exemple est plus utile.

EDIT: J'ai écrit une nouvelle réponse améliorée à cette question ici: interpréteur distant vscode python

À l'aide du terminal VScode, vous pouvez exécuter le code Python sur une machine distante via SSH avec: 

cat hello_world.py | ssh user@hostname python - 

Vous pouvez l'ajouter en tant que tâche de génération VSCode avec ${file} pointant vers le fichier actuel. Si vous avez besoin du débogage distant dans VScode, vous pouvez lire les étapes suivantes: code.visualstudio.com/docs/python/debugging#_remote-debugging

En outre, vous pouvez également créer une variable alias ou function dans votre fichier .bashrc ou .zshrc qui facilite l'exécution de fichiers sur une machine distante, potentiellement dans virtualenv. Par exemple, mon fichier .zshrc contient la fonction suivante pour exécuter des fichiers Python sur mon poste de travail dans un virtualenv distant:

function remote-pytorch () {
    cat $1 | ssh user@hostname 'source ~/virtualenv/pytorch/bin/activate && python -'
}

De cette façon, je peux simplement exécuter la commande suivante pour exécuter le script à distance:

remote-pytorch train_network.py

(note: la syntaxe des fonctions est légèrement différente dans les fichiers .bashrc)

1
verified.human