Запуск Python скриптов из любого места - PullRequest
0 голосов
/ 10 марта 2020

Я новичок в программировании. Давая это еще одну попытку.

Мне удалось запустить Python из PowerShell путем изменения переменных среды. Когда я пытаюсь запустить Python с помощью Win + R, только py запускает python. Это озадачивает меня. PowerShell и cmd не имеют проблем с простым набором python.

Я также пытаюсь сделать так, чтобы я мог запустить python скрипт из любого места. Я сделал простой скрипт с именем again.py в коде Visual Studio и сохранил скрипт в указанной папке c. Когда я пытаюсь запустить скрипт в VS C, я всегда получаю сообщение об ошибке:

[Running] python -u "c:\Users\xyz\Programming\Python\again.py" 'python' is not recognized as an internal or external command, operable program or batch file.

[Done] exited with code=1 in 0.137 seconds

По моему пониманию, если папка включается в Путь, и вызывается файл, который хранится в этой папке, файл / скрипт должен запускаться. Я должен иметь возможность вызывать этот файл откуда угодно, но я просто не могу набрать имя файла в PowerShell или Run и запустить его.

win + R возвращает:

Windows cannot find 'again.py'. Make sure you type the name correctly, and try again.

PowerShell: запустить снова. Py

start : This command cannot be run due to the error: The system cannot find the file specified. At line:1 char:1 + start again.py + ~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

При вводе again.py в cmd он работает нормально.

1 Ответ

0 голосов
/ 10 марта 2020

Ошибка Powershell вызвана пробелом в имени файла. Powershell просматривает ввод start again.py и анализирует его следующим образом:

first token on row is word "start"
    start is an alias to start-process
second token on row is "again.py"
    that will be passed as argument to start-process

Самый простой способ - избежать пробелов в именах файлов. Вместо этого используйте знак подчеркивания или верблюда. То есть startAgain.py или start_again.py. Один может использовать пробелы, но в нем используются дополнительные приемы цитирования. Что еще хуже, они зависят от оболочки. У Cmd свои правила, у Powershell совсем другие. Поскольку вы учитесь программировать, рассмотрите возможность сосредоточиться на Python на данный момент, а потом позаботьтесь о проблемах цитирования оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...