web-dev-qa-db-fra.com

vscode python interprète distant

En utilisant VSCode (Visual Studio Code) j'exécute Python code sur un interpréteur local Python (Anaconda). Maintenant, je voudrais le configurer pour que je suis capable d'exécuter ce code sur un interpréteur distant Python. J'ai un périphérique Linux qui a son propre Python et est accessible via ssh.
Est-il possible de le configurer? Si c'est le cas, comment? Je vous remercie.

6
user3428154

Pendant que Microsoft travaille à l'implémentation officielle de cela dans VSCode (voir: https://github.com/Microsoft/vscode-python/issues/79 ) J'utilise personnellement la tâche suivante définie dans tasks.json pour exécuter Python sur ma machine distante. Il contient deux tâches: (1) synchroniser le code avec la machine distante à l'aide de rsync; (2) exécuter le code via SSH dans l'interpréteur distant. Notez que la tâche d'exécution dependsOn la tâche de synchronisation afin que l'exécution du code soit toujours effectuée à partir de la dernière copie locale.

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Synchronize Code",
            "type": "Shell",
            "command": "rsync -axv --exclude-from=rsync-exclude.lst --max-size=5MB \"${workspaceFolder}\" user@hostname:dev/code-sync/",
            "problemMatcher": [],
            "isBackground": true,
            "presentation": {
                "echo": false,
                "reveal": "silent",
                "focus": false,
                "panel": "shared",
                "clear": false
            }
        },
        {
            "label": "Remote Execute",
            "type": "Shell",
            "command": "ssh -n user@hostname \"source ~/.profile && source /path/to/virtualenv/bin/activate && python ~/dev/code-sync/${workspaceFolderBasename}/${relativeFile}\"",
            "dependsOn": [
                "Synchronize Code"
            ],
            "problemMatcher": []
        }
    ]
}

Notez que vous pouvez également affecter une liaison de touches à l'exécution de la tâche afin d'exécuter le code Python sur la télécommande avec une seule touche. Ajouter à keybindings.json:

{
    "key": "cmd+shift+r",
    "command": "workbench.action.tasks.runTask",
    "args": "Remote Execute"
}
4
verified.human