Używam Bash na Windowsie, dostarczonym przez MSYS.
Próbowałem uruchomić plik Python z shebang #!/usr/bin/env python
, ale pojawia się ten komunikat o błędzie:
/usr/bin/env: python: No such file or directory
Co mogę zrobić, aby to zadziałało?
Wiem, że mogę uruchomić plik Python, dodając do niego sufiks python
, ale chcę, aby działał również bez sufiksu.
env
, tak jak pytający.which env
iwhich python
itype python
?Możesz być zainteresowany Python Launcher dla Windows
źródło
Co się stanie po uruchomieniu (z powłoki):
..?
Jeśli rozpocznie interaktywną sesję Pythona, można go znaleźć. (Możesz także po prostu uruchomić:)
type python
. Jeśli drukuje „nie ma takiego pliku lub katalogu”,python
to nie znajduje się w ŚCIEŻCE. Sprawdź, czy można poprawić następujące elementy, aby rozwiązać problem (spacje w ścieżce / do / python prawdopodobnie spowodują problemy):źródło
Okazało się, że istnieje rozbieżność między
activate.sh
plikiem Virtualenv a MSYSGIT. Nigdy nie miał działać w systemie Windows.źródło
Najnowsze wersje systemu Windows 10 obsługują instalowanie podsystemów Linux. Jeśli uciekniesz stamtąd, ścieżki powinny być poprawne.
Powinno to być działające rozwiązanie, jeśli nie masz nic przeciwko temu.
źródło
Przyczyną problemu jest to, że spacje w shebangach są interpretowane jako dostarczające dodatkowe argumenty do pliku wykonywalnego, więc
C:\Program Files\Python\python.exe
są postrzegane jakoC:\Program
podaneFiles\Python\python.exe
jako argument.Najlepszym rozwiązaniem tego jest, ponieważ Windows LOVES spacje w
$HOME
katalogu iProgram Files
innych miejscach, nawet jeśli naprawdę może to popsuć w cmd.exe oraz Powershell i innych narzędziach:Zainstaluj Python
C:\Python
i dodajC:\Python
folder, w którympython.exe
mieszka, orazScripts
katalog, który w nim mieszka, doPATH
zmiennej środowiskowej na poziomie systemu lub użytkownika.Jeśli potrzebujesz Python 2.7.x 3.x współistnieć, zainstalować je
C:\Python27
iC:\Python36
iC:\Python37
i zmienić nazwępython.exe
napython2.exe
,python36.exe
,python37.exe
, etc i dodać każdy z tych folderów i ichScripts
foldery doPATH
. Możesz określić, która z wersji Pythona 3 ma być „domyślna”, a także wykonać kopię w tym folderze,python3.exe
aby obsłużyć wszystkie używane skrypty!#/usr/bin/env python3
.Jeśli w katalogu domowym użytkownika znajduje się spacja, mogą wystąpić problemy, jeśli użyjesz
pip install --user somepackage
składni. W--user
domyślnie do katalogu domowego, a przestrzeń wyłączy się, co w tym przypadku również. To obejście jest opisane tutaj, ale sprowadza się do wyeksportowania PYTHONUSERBASE do twojego środowiska.lub w systemie Windows (Powershell):
źródło