Я использую Bash на Windows, предоставленной MSYS.
Я попытался запустить файл Python с shebang of #!/usr/bin/env python
, но я получаю это сообщение об ошибке:
/usr/bin/env: python: No such file or directory
Что я могу сделать, чтобы сделать эту работу?
Я знаю, что могу запустить файл Python, добавив к нему суффикс python
, но я хочу, чтобы он работал и без суффикса.
env
, как делает аскер.which env
иwhich python
иtype python
?Вы можете быть заинтересованы в Python Launcher для Windows
источник
Что происходит при запуске (из оболочки):
..?
Если он запускает интерактивную сессию Python, то Python можно найти. (Вы также можете просто запустить:)
type python
. Если он печатает «нет такого файла или каталога», тоpython
он не найден в вашем PATH. Посмотрите, можно ли настроить следующее для устранения проблемы (пробелы в пути / к / python, вероятно, вызовут проблемы):источник
Я оказался несоответствием между
activate.sh
файлом Virtualenv и MSYSGIT. Он никогда не был предназначен для работы на Windows.источник
Последние версии Windows 10 поддерживают установку подсистем Linux. Если вы бежите оттуда, пути должны быть правильными.
Это должно быть рабочее решение, если вы в порядке с этим.
источник
Корень проблемы заключается в том, что пробелы в shebangs интерпретируются как поставляя дополнительные аргументы для исполняемого файла, поэтому
C:\Program Files\Python\python.exe
становится видно , какC:\Program
дано вFiles\Python\python.exe
качестве аргумента.Лучшее решение для этого, потому что Windows ЛЮБИТ пробелы в
$HOME
каталоге иProgram Files
других местах, даже если это действительно может нарушить работу cmd.exe, Powershell и других инструментов, это:Установите Python
C:\Python
и добавьтеC:\Python
папку, в которой он находится,python.exe
иScripts
каталог, в котором он находится, вPATH
переменную среды на уровне системы или пользователя.Если вам нужен Python 2.7.x и 3.x сосуществовать, установить их в
C:\Python27
иC:\Python36
иC:\Python37
и переименоватьpython.exe
вpython2.exe
,python36.exe
,python37.exe
и т.д. , и добавить каждый из этих папок и ихScripts
папок вPATH
. Возможно, вы захотите определить, какую из версий Python 3 вы хотите использовать по умолчанию, а также сделать копию в этой папке,python3.exe
чтобы обработать любые сценарии, которые используют!#/usr/bin/env python3
.Если в вашем домашнем каталоге пользователя есть пробел, у вас могут возникнуть проблемы, если вы используете
pip install --user somepackage
синтаксис. По--user
умолчанию это ваш домашний каталог, и в этом случае пространство будет сбивать с толку. Обходной путь описан здесь, но сводится к экспорту PYTHONUSERBASE в вашу среду.или в Windows (Powershell):
источник