Невозможно запустить файлы .sh и .ps1 с помощью Python

Я узнал, что вы можете писать сценарии и запускать несколько команд, выполняя файл .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.

Klaus D. 05.05.2024 20:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
2
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы запускаете команду в REPL Python. Это видно по полученной вами ошибке: команда, которую вы написали, рассматривается как код Python, синтаксис которого недопустим. Вам нужно запустить эту команду в оболочке. Откройте свой обычный старый терминал и запустите там команду.

Я открыл обычный терминал и выполнил команду «py test.sh», а также «py test.ps1», и выдал ту же ошибку.

Vasee Aleem 05.05.2024 20:36

Спасибо за дополнительный контекст. Вы пытаетесь использовать Python для выполнения кода PowerShell. Python может выполнять только код Python. Чтобы запустить сценарий PowerShell из терминала PowerShell, просто запустите ./test.ps1.

bgfvdu3w 05.05.2024 20:39

Я выполнил команды: PS D:\python\testing> set-executionpolicy unrestricted -scope processPS 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.

Vasee Aleem 05.05.2024 20:45

Попробуйте использовать py вместо python3 в сценарии PowerShell, например. py -c "print(1)"

bgfvdu3w 05.05.2024 20:55

Спасибо, это сработало. Я использовал py.exe в своем скрипте PowerShell. Например. py.exe -c "print(1)"

Vasee Aleem 05.05.2024 21:02

Другие вопросы по теме