Как запустить Python скрипт из R? - PullRequest
0 голосов
/ 18 января 2020

Я пробую простой пример, но он терпит неудачу:

system("cmd.exe", input = 'python --version')

Microsoft Windows [Версия 6.1.7601] Авторское право (c) 2009 Корпорация Microsoft. Wszelk ie prawa zastrzezone.

C: \ Users \ cp \ Documents \ R DATA \ LocalAuth> python --version Nazwa 'python' n ie jest rozpoznawana jako polecen ie wewnetrzne lub zewnetrzne, программа wykonywalny lub plik wsadowy.

Я понимаю, что cmd там не должен работать, но когда я открываю:

system("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", input = 'python --version')

Windows Авторское право PowerShell (C) 2016 Корпорация Microsoft. Все права защищены.

PS C: \ Users \ cp \ Documents \ R DATA \ LocalAuth> python --version python: термин 'python' не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В строке: 1 символ: 1 + python --version + ~~~~~~ + CategoryInfo: ObjectNotFound: (* python: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Когда я открываю эта консоль вручную работает, но в свойствах я вижу полный путь:

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\ProgramData\Anaconda3' "

Как я могу использовать ее со всеми этими параметрами в R? Когда я пытаюсь использовать ссылку внутри системной команды, я получаю:

Ошибка в "% windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy ByPass -NoExit -Command" &: операции возможны только для чисел c, логических или сложных типов

Я думаю, это должно работать как-то: пока я ввожу каталог в командной консоли (cmd.exe) в "C: \ ProgramData \ Anaconda3" и введите python --version Я получаю сообщение, но с system("C:\\ProgramData\\Anaconda3\\ python --version") оно не работает. Почему?

РЕДАКТИРОВАТЬ

Обнаружено неэлементное решение

setwd("C:/ProgramData/Anaconda3/")
system(command = 'cmd.exe', input = 'python --version')

Работает, но изменяет рабочий каталог, который не требуется.

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