2016-08-05 2 views
8

Я использую Windows 10 и имею Python. Новое обновление принесло bash для Windows, но когда я вызываю python изнутри bash, это относится к установке Python, которая поставляется с bash, а не к моему Python, установленному в Windows. Так, например, я не могу использовать модули, которые я уже установил в Windows, и им придется устанавливать их отдельно при установке bash.Указание bash на python, установленное на windows

Как я могу (и могу ли я?) Сделать точку bash моей первоначальной установке Windows Python? Я вижу, что в/usr/bin у меня есть много ссылок с «python» внутри их имени, но я не уверен, какие из них нужно изменить, и если их изменение в каталогах Windows будет работать даже из-за разных исполняемых форматов.

+2

Возможность запуска программ Windows из WSL - [на отставание] (https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/ 13284702-пусть-нам-Launch-окна-процессы-от-Баш). – eryksun

+0

Я вижу сейчас, спасибо за указание! –

ответ

0

В настоящее время вы не можете запускать приложения Windows из Bash, но это функция, над которой мы работаем для будущей версии. Если вы хотите быть одним из первых, кто получит и запустит эту функцию, когда она будет завершена, обязательно зайдите в Fast-Ring Windows 10 Insider.

0

У меня нет установленной Windows 10, но я использую Babun, и у меня была та же проблема. Как я прочитал псевдонимы хорошо работают в ОС Windows 10 оболочки так просто добавить псевдоним в вашем .bashrc, указывающий на ваш Python каталог установки:

alias python /mnt/c/Python27/python 
0

У вас есть по крайней мере четыре варианты:

  1. Укажите полный абсолютный путь к исполняемому файлу python, который вы хотите использовать.
  2. Определите псевдоним в вашем .bashrc файле
  3. Измените переменную PATH в файле .bashrc, чтобы указать расположение версии python, которую вы хотите использовать.
  4. Создайте символическую ссылку в каталоге, который уже находится в вашем PATH.
+3

В настоящее время подсистема Linux не может запустить исполняемый файл PE в подсистеме Windows.По-видимому, они рассматривают это, и в конце концов он может (должен) быть поддержан. Я предполагаю, что он может быть реализован в системных вызовах 'exec', или они могут добавить специальную программу«/bin/cmd », которая запускает экземпляр cmd.exe в Windows, точно так же, как bash.exe запускает/bin/bash в Linux. Затем можно запустить Windows Python с помощью 'cmd/c python ...'. – eryksun

+0

@eryksun Возможно, я неправильно понял/неправильно понял исходный вопрос. Я не понимал, что обсуждаемый «bash» фактически является частью Windows, а не сторонним инструментом, таким как cygwin или mingw. –

+1

См. [Bash on Ubuntu в Windows] (https://msdn.microsoft.com/commandline/wsl/about). Это новая подсистема в Windows 10, которая запускает бинарные файлы Linux ELF напрямую, сопоставляя системные вызовы Linux на системные вызовы NT. – eryksun

4

Начиная с Windows 10 Insider build # 14951 вы можете теперь вызывать исполняемые файлы Windows из Bash.

Вы можете сделать это явным вызовом абсолютный путь к исполняемому файлу (например, c:\Windows\System32\notepad.exe), либо путем добавления пути исполняемого файла на пути Баш (если это не уже), а просто вызов, например, notepad.exe.

Примечание: Обязательно добавьте .exe на имя исполняемого файла - это то, как Linux знает, что вы вызываете нечто чуждое и направляет запрос вызова на зарегистрированный обработчик - WsL в этом случае.

Таким образом, в вашем случае, если вы установили Python 2.7 на Windows, в C: \, вы можете вызвать его с помощью команды, как это изнутри Баш:

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

(или аналогично - проверьте, что вы указали каждую папку/имя файла правильно и т. д.)

HTH.

+0

Когда я это делаю, я получаю сообщение об ошибке «невозможно выполнить двоичный файл: ошибка формата Exec». Чтобы быть понятным, это приведет к установке Windows Python, а не установке WLS Python, правильно? – tallen11

Смежные вопросы