2016-08-05 12 views
8

Używam systemu Windows 10 i zainstalowałem Python. Nowa aktualizacja przyniosła bash do okien, ale kiedy wywołuję Pythona z wnętrza bash, odnosi się to do instalacji Pythona, która pochodzi z bash, a nie do mojego Pythona zainstalowanego w systemie Windows. Tak więc, na przykład, nie mogę korzystać z modułów, które już zainstalowałem w systemie Windows i musiałem zainstalować je osobno w instalacji bash.Wskazując bash na pytona zainstalowanego w systemie Windows

W jaki sposób mogę (i czy mogę) umieścić punkt bash w mojej oryginalnej instalacji Pythona? Widzę, że w/usr/bin mam dużo linków z "python" wewnątrz ich nazwy, ale nie jestem pewien, które z nich można zmienić, a jeśli zmiana ich na katalogi Windows będzie działała nawet ze względu na różne formaty plików wykonywalnych.

+2

Możliwość uruchamiania programów Windows z WSL to [na zaległości] (https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/ 13284702-let-us-launch-windows-processes-from-bash). – eryksun

+0

Widzę teraz, dzięki za wskazanie! –

Odpowiedz

0

Obecnie nie można uruchamiać aplikacji Windows z poziomu Bash, ale jest to funkcja, nad którą pracujemy w przyszłej wersji. Jeśli chcesz być wśród pierwszych, którzy otrzymają i uruchomią tę funkcję po jej zakończeniu, zarejestruj się w systemie Windows 10 Insider Fast-Ring.

0

Nie mam zainstalowanego systemu Windows 10, ale używam Babunia i miałem ten sam problem. Jak czytam aliasy dobrze działać w systemie Windows 10 muszli tak po prostu dodać alias w .bashrc wskazując katalogu instalacji Pythona:

alias python /mnt/c/Python27/python 
0

mieć co najmniej cztery opcje:

  1. Określ pełną ścieżkę bezwzględną do pliku wykonywalnego Pythona, którego chcesz użyć.
  2. Definiowanie aliasu w pliku .bashrc
  3. Zmodyfikuj zmienną PATH w pliku .bashrc, aby uwzględnić lokalizację wersji pythona, której chcesz użyć.
  4. Utwórz dowiązanie symboliczne w katalogu, który jest już w Twojej PATH.
+3

Obecnie podsystem Linux nie może uruchomić pliku PE w podsystemie Windows.Najwyraźniej zastanawiają się nad tym i może (ostatecznie) być wspierane. Przypuszczam, że można go zaimplementować w wywołaniach systemowych 'exec' lub dodać specjalny program"/bin/cmd ", który uruchamia instancję cmd.exe w systemie Windows, tak jak bash.exe uruchamia/bin/bash w systemie Linux. Następnie można uruchomić Windows Pythona przez 'cmd/c python ...'. – eryksun

+0

@eryksun Prawdopodobnie błędnie przeczytałem/źle zrozumiałem pierwotne pytanie. Nie zdawałem sobie sprawy, że dyskusja "bash" jest w rzeczywistości częścią systemu Windows, a nie narzędziem innej firmy, takim jak cygwin lub mingw. –

+1

Zobacz [Bash na Ubuntu na Windows] (https://msdn.microsoft.com/commandline/wsl/about). Jest to nowy podsystem w systemie Windows 10, który obsługuje pliki binarne systemu Linux ELF bezpośrednio poprzez mapowanie wywołań systemowych systemu Linux na połączenia systemowe systemu NT. – eryksun

4

Od wersji Windows 10 Insider # 14951 można teraz wywoływać pliki wykonywalne systemu Windows z poziomu Bash.

Można to zrobić, jawnie wywołując bezwzględną ścieżkę do pliku wykonywalnego (na przykład c:\Windows\System32\notepad.exe), lub dodając ścieżkę do pliku wykonywalnego do ścieżki bash (jeśli jeszcze nie jest) i po prostu wywołując na przykład notepad.exe.

Uwaga: Pamiętaj, aby dołączyć .exe do nazwy pliku wykonywalnego - to jak Linux nie wie, że jesteś powołując się coś obcego i kieruje wniosek wezwanie do zarejestrowanego obsługi - WSL w tym przypadku.

Więc w twoim przypadku, jeśli został zainstalowany Python 2.7 na Windows w C: \, możesz go wywołać za pomocą polecenia takiego od wewnątrz bash:

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

(lub podobne - sprawdź, czy podałeś poprawnie każdy folder/nazwę pliku, itp.)

HTH.

+0

Kiedy to zrobię, pojawia się błąd "nie można wykonać pliku binarnego: błąd formatu Exec". Dla jasności, byłoby to uruchomienie instalacji Pythona w systemie Windows, a nie instalacji Pythona WLS, prawda? – tallen11

Powiązane problemy