11
votes

Pointer bash à un python installé sur Windows

J'utilise Windows 10 et j'ai installé Python. La nouvelle mise à jour a apporté Bash à Windows, mais lorsque j'appelle Python d'Inside Bash, il fait référence à l'installation Python qui est venue avec la bash, pas à mon python installé sur Windows. Ainsi, par exemple, je ne peux pas utiliser les modules que j'ai déjà installés sous Windows et devriez les installer séparément sur l'installation Bash.

Comment puis-je (et je peux-je?) Faites-le savoir Bash Point à mon installation d'origine Windows Python? Je vois que dans / usr / bin, j'ai beaucoup de liens avec "Python" à l'intérieur de leur nom, mais je ne suis pas sûr que ceux qui changent, et si les changements vers des annuaires Windows fonctionneraient même en raison de différents formats exécutables.


2 commentaires

La possibilité d'exécuter des programmes Windows de WSL est sur l'arriéré .


Je vois maintenant, merci de le pointer!


3 Réponses :


0
votes

Je n'ai pas installé Windows 10, mais j'utilise Babun et j'avais le même problème. Comme je lis des alias les alias fonctionnent bien dans Windows 10 Shell, ajoutez simplement un alias dans votre fichier .bstrucc pointant sur votre répertoire d'installation Python: xxx


0 commentaires

0
votes

Vous avez au moins quatre options:

  1. Spécifiez le chemin d'accès absolu complet sur l'exécutable Python que vous souhaitez utiliser.
  2. Définissez un alias dans votre fichier .bashrc
  3. Modifiez la variable de chemin dans votre fichier .bstrucc pour inclure l'emplacement de la version Python que vous souhaitez utiliser.
  4. Créez un symbolique dans un répertoire qui est déjà dans votre chemin.

4 commentaires

Actuellement, le sous-système Linux ne peut pas lancer d'exécutable PE dans le sous-système Windows. Apparemment, ils envisagent cela, et il peut (devrait) être soutenu par éventuellement. Je suppose que cela pourrait être mis en œuvre dans la famille des appels système familial d'appels système, ou ils pourraient ajouter un programme spécial "/ bin / cmd" qui commence une instance de cmd.exe dans Windows, tout comme Bash.exe Démarre / bin / bash à Linux. Ensuite, on pourrait exécuter Windows Python via cmd / c python ... .


@ Seryksun J'ai probablement mal interprété / mal compris la question initiale. Je n'ai pas réalisé que la "bash" en discussion fait réellement partie de Windows et non un outil tiers tel que Cygwin ou Mingw.


Voir bash sur Ubuntu sur Windows . Il s'agit d'un nouveau sous-système sous Windows 10 qui exécute des fichiers binaires Linux Elf directement en mappant les appels système Linux vers des appels système NT.


@ Code-Apprentice: Vous voudrez peut-être supprimer votre réponse car aucune de vos suggestions ne fonctionnera actuellement sur BASH / WSL.



5
votes

AS de Windows 10 Insider Build # 14951, vous pouvez maintenant invoquer des exécutables Windows de Bash.

Vous pouvez le faire en appelant explicitement le chemin absolu à un exécutable (par exemple, C: \ windows \ system32 \ nottepad.exe ) ou en ajoutant le chemin de l'exécutable sur le chemin Bash (si elle N'est-ce pas déjà), et juste appeler, par exemple, notessad.exe .

Remarque: assurez-vous d'ajouter le .exe au nom de l'exécutable - c'est ainsi que Linux sait que vous appelez quelque chose d'étranger et de parcourir la demande d'invocation au gestionnaire enregistré - WSL ce cas.

Donc, dans votre cas, si vous avez installé Python 2.7 sous Windows à C: \, vous pouvez l'invoquer à l'aide d'une commande comme celle-ci à partir de Bash:

$ /mnt/c/python2.7/bin/python.exe

(ou similaire - Vérifiez que vous avez spécifié chaque cas de dossier / fichier de fichier correctement, etc.)

hth.


1 commentaires

Quand je le fais, je reçois l'erreur "Impossible d'exécuter une erreur de format binaire: Exec Format". Juste pour être clair, cela dirigerait l'installation de Windows de Python et non l'installation WLS de Python, correcte?