Я узнал, что вы можете писать сценарии и запускать несколько команд, выполняя файл .sh или .ps1 в Bash и PowerShell соответственно. Однако, когда я запускаю свои файлы, я получаю одну и ту же ошибку (как в Bash, так и в PowerShell), и я не могу понять, почему.
Версия Python, которую я использую, — 3.11.4. ОС: Win11
Сценарий, который я пытаюсь запустить:
python3 -c "print(1)"
Команда, которую я выполняю В PowerShell:
./test.ps1
В Баше:
./test.sh
Сообщение об ошибке, которое я получаю:
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Например, когда я запускаю его с помощью Python:
py test.ps1
Или
py test.sh
Я получаю следующую ошибку:
File "D:\python\testing\test.ps1", line 1
python3 -c "print(1)"
^^^^^^^^^^
SyntaxError: invalid syntax
Тот факт, что он показывает содержимое файла, означает, что он запущен, но я не могу понять, в чем проблема с синтаксисом.
Это точное сообщение об ошибке будет показано, если вы попытаетесь вызвать python
изнутри самого Python.
Вы запускаете команду в REPL Python. Это видно по полученной вами ошибке: команда, которую вы написали, рассматривается как код Python, синтаксис которого недопустим. Вам нужно запустить эту команду в оболочке. Откройте свой обычный старый терминал и запустите там команду.
Я открыл обычный терминал и выполнил команду «py test.sh», а также «py test.ps1», и выдал ту же ошибку.
Спасибо за дополнительный контекст. Вы пытаетесь использовать Python для выполнения кода PowerShell. Python может выполнять только код Python. Чтобы запустить сценарий PowerShell из терминала PowerShell, просто запустите ./test.ps1
.
Я выполнил команды: PS D:\python\testing> set-executionpolicy unrestricted -scope process
PS D:\python\testing> ./test.ps1
и получил ошибку: Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Попробуйте использовать py
вместо python3
в сценарии PowerShell, например. py -c "print(1)"
Спасибо, это сработало. Я использовал py.exe
в своем скрипте PowerShell. Например. py.exe -c "print(1)"
Работает для меня. Можете ли вы отредактировать свой вопрос и добавить минимальный воспроизводимый пример?