Bien que l'exécution de versions Linux de python, pip etc. "nativement" sur Windows soit incroyable, j'aimerais le faire en utilisant un IDE approprié. Étant donné que la compatibilité SSHD n'a pas encore été implémentée, j'essaie d'obtenir que PyCharm reconnaisse Linux python en tant qu'interprète local).
Après avoir installé le sous-système Windows Linux, tapez
bash -c python
à partir de la ligne de commande Windows vous déposera dans un python Shell.
bash -c "echo \"print 'hello world'\" | python"
fonctionne aussi bien, produisant "hello world" en sortie dans le shell Windows!
J'essaie de conclure cela sous forme de fichier .bat et de le présenter à PyCharm en tant qu'interprète local, c'est-à-dire.
python.bat:
C:\Windows\System32\bash.exe -c "echo %1 | python"
Mais je continue à obtenir "le sdk semble invalide" pour toute variation que j'essaie. Comme je ne sais pas exactement ce que PyCharm fait pour "valider" le SDK, cela est difficile à surmonter.
Utilisation de PyCharm avec WSL Python sur Win10 Démarrage de SSH
PyCharm ne peut être configuré que pour utiliser WSL Python comme interpréteur distant (cela est dû au manque d'autres API publiques).
Si vous voyez un message sur l'empreinte digitale ECDSA, répondez y. Vous devriez voir l'invite de mot de passe. Si vous le voyez, votre serveur fonctionne correctement.
Désactivez-le avec CTRL + C et démarrez le serveur en mode démon (Sudo service ssh start). Il semble que upstart soit interrompu sur le WSL actuel, vous devez donc exécuter bash.exe, démarrer sshd et garder la fenêtre de la console ouverte puisque WSL s'arrête lorsque le dernier client se déconnecte. Vous pouvez créer un fichier wsl_ssh.bat comme bash.exe -c "Sudo service ssh start &&& sleep 999d" et l'utiliser pour lancer ssh.
Configuration de PyCharm PyCharm doit être configuré pour utiliser WSL comme interpréteur distant mais sans déploiement, car chaque lecteur sous Windows est mappé vers le dossier approprié dans/mnt/dans WSL. Il vous suffit donc de configurer le mappage. Pour l'interpréteur distant, voir https://www.jetbrains.com/help/pycharm/2016.1/configuring-remote-python-interpreters.html . Vous devez utiliser 127.0.0.1 comme nom d'hôte, ainsi que l'identifiant et le mot de passe que vous avez entrés après le premier lxrun/install. Vous devez également définir C: `sur/mnt/c /` dans vos mappages. Voir la vidéo du post précédent.
Auteur: Ilya Kazakevich
14 juin 2016, 17:20
https://youtrack.jetbrains.com/issue/PY-19129#comment=27-146935
J'ai essayé de travailler avec la plupart des solutions, mais le principal problème est que je ne peux pas rétrograder OpenSSH sur Windows à quelque chose en dessous de 7,5 comme recommandé par JetBrains.
Heureusement, ils ont résolu ce problème pour nous! J'ai téléchargé la version Early Access de Pycharm 2018.3
https://blog.jetbrains.com/pycharm/2018/10/pycharm-2018-3-eap-7/
Je voudrais ajouter la réponse de bmjjr en déclarant que ceci n'est disponible qu'avec PyCharm Professional Edition . La fonction d'interpréteur à distance n'est pas disponible avec l'édition communautaire, comme je l'ai malheureusement découvert:
Pris en charge uniquement dans Professional Edition
https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html
Pris en charge via remote int. Voir le dernier commentaire: https://youtrack.jetbrains.com/issue/PY-19129
Eh bien, j'ai réussi à produire un hack laid et fonctionnel. Vous devrez installer python-setuptools et pip manuellement sous le sous-système Linux. Assurez-vous d'utiliser la version pip fournie par PyCharm, vous la trouverez à un chemin similaire à:
C:\Program Files (x86)\JetBrains\PyCharm 2016.1.2\helpers\pip-7.1.0.tar.gz
Ensuite, configurez le script suivant comme "python.bat" sous "c:\Python" et pointez PyCharm vers lui en tant qu'interpréteur:
@echo off
@setlocal enableextensions enabledelayedexpansion
:: Requiers pip and setuptools to already be installed on linux subsystem
Set "Pattern= "
Set "Replace=\ "
Set "cdrive=C:"
Set "linpath=/mnt/c"
:: Iterate over arguments, convert paths to linux format and concatinate
set argCount=0
for %%x in (%*) do (
set /A argCount+=1
set arg=%%x
:: Backward slash to forward slash
SET arg=!arg:\=/!
:: C drive to /mnt/c/ - default linux subsystem mount point
SET arg=!arg:%cdrive%=%linpath%!
:: Space to escaped space
SET arg=!arg:%Pattern%=%Replace%!
:: Parethesis to escaped parenteses
SET arg=!arg:^(=\^(!
SET arg=!arg:^)=\^)%!
:: Deqoute voodoo via http://ss64.com/nt/syntax-dequote.html
SET arg=###!arg!###
SET arg=!arg:"###=!
SET arg=!arg:###"=!
SET arg=!arg:###=!
if "!args!"=="" (
set args=!arg!
) else (
set args=!args! !arg!
)
)
:: Dump it to the interpreter
:: Output is piped inside the Linux subsys, as windows piping for bash seems broken
START "Terrible hack to avoid pipe error" /W /MIN C:\Windows\System32\bash.exe -c "python !args! > /mnt/c/Python/test"
:: Output resulr from piped file
type c:\Python\test
:: echo !args!
EXIT /B > NUL
Pardonnez le terrible style de codage, car je n'ai jamais vraiment développé de fichiers batch Windows auparavant.
Vous devrez peut-être modifier la structure du répertoire pour l'adapter à votre système. Notez également que la sortie de tout script python appelé par Python.bat est redirigée vers un fichier temporaire sous le sous-système linux, puis tapée sous Windows. Pour une raison quelconque, rediriger la sortie de bash .exe via Windows provoque des erreurs.
J'espère que cela t'aides.
MISE À JOUR: Enveloppé l'appel à "bash" avec "START" afin d'éviter de terribles erreurs de gestion des tuyaux (cf https://wpdev.uservoice.com/forums/266908-command-Prompt-console-bash-on -ubuntu-on-windo/suggestions/13425768-allow-windows-programs-to-spawn-bash )
Ouvrez la boîte de dialogue Add Python Interpreter de l'une ou l'autre manière:
Lorsque vous êtes dans l'éditeur, le moyen le plus pratique consiste à utiliser le widget interprète Python dans la barre d'état. Cliquez sur le widget et sélectionnez Ajouter un interprète ...
Si vous êtes dans la boîte de dialogue Paramètres/Préférences (Ctrl + Alt + S), sélectionnez Projet | Interprète de projet. Cliquez sur l'icône The Configure project interpreter et sélectionnez Ajouter.
Dans le volet gauche de la boîte de dialogue, cliquez sur WSL.
Utilisez Anaconda:
.\rootfs\home\$UserName$\anaconda\envs\$Conda_Env$\bin\python3
Utilisez Pyhton: Ajout d'un interpréteur WSL
Sélectionnez la distribution Linux et spécifiez le chemin d'accès à l'exécutable python dans la distribution Linux sélectionnée.
Une fois terminé, le nouvel interpréteur sera ajouté à votre projet et la valeur par défaut mnt mappings sera définie.
Interprète WSL nouvellement ajouté
Notez qu'avec WSL, vous ne pouvez pas créer d'environnements virtuels: tous les packages que vous installez seront ajoutés à l'interpréteur système correspondant. Il vous sera demandé de saisir votre mot de passe Sudo.
Saisie de votre mot de passe Sudo
Référence: JetBrains
J'ai utilisé l'interpréteur ssh distant normal "ancienne méthode" discutée dans ce lien ici :
J'ai utilisé ce guide : de manière critique, j'obtenais une erreur d'authentification qui a été résolue avec this :