Проблема при вызове исполняемого файла в пути, который имеет место

Я только что установил R на новый компьютер с Microsoft Windows 7, и я использую следующую ошибку при использовании командной строки:

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version  
'C:\Program' is not recognized as an internal or external command,

работоспособная программа или командный файл.

Обратите внимание, что я добавил кавычки вокруг пути с пробелом. И что я добавил в системный путь:

;C:\Program Files\R\R-3.3.2\bin\

Что интересно:

  1. если я просто позвоню Rscript.exe --version он выдает ту же ошибку, что очень странно: если он его находит, почему он не может его запустить!?! Единственное объяснение, которое я могу найти, заключается в том, что ошибка возникает при поиске зависимости Rscript.exe
  2. Я также заметил, что это работает "C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version (обе папки ...\bin а также ...\bin\x64 есть исполняемый файл Rscript.exe)

Наконец, я подтверждаю, что это специфический для R вопрос, поскольку все другие исполняемые файлы, которые я пробовал в подпапке Program Files, могут вызываться через тот же интерфейс командной строки!

2 ответа

Я пытался повторить вашу проблему, и я нашел одну вещь в вашем вопросе: вы упоминаете, что это не работает:

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version  
'C:\Program' is not recognized as an internal or external command,

Но это делает:

"C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version

Кажется, что вы используете R-3.3.3 в примере, который работает, и R-3.3.2 в примере, который не работает.

Так что я бы предположил, что если вы измените его на

"C:\Program Files\R\R-3.3.3\bin\Rscript.exe" --version  

он должен работать.

Проверять, выписываться

C:\Users>Rscript --help
Usage: /path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args]

--options accepted are
  --help              Print usage and exit
  --version           Print version and exit
  --verbose           Print information on progress
  --default-packages=list
                      Where 'list' is a comma-separated set
                        of package names, or 'NULL'
or options to R, in addition to --slave --no-restore, such as
  --save              Do save workspace at the end of the session
  --no-environ        Don't read the site and user environment files
  --no-site-file      Don't read the site-wide Rprofile
  --no-init-file      Don't read the user R profile
  --restore           Do restore previously saved objects at startup
  --vanilla           Combine --no-save, --no-restore, --no-site-file
                        --no-init-file and --no-environ

'file' may contain spaces but not shell metacharacters
Expressions (one or more '-e <expr>') may be used *instead* of 'file'
See also  ?Rscript  from within R

Следуя вашей теории, что какая-то зависимость виновата, я надеялся, что --verbose укажет, что другие файлы Rscript пытается прочитать. Нет такой удачи.

Между прочим, почти ни одна из этих опций не может быть использована для меня, если я не предоставлю Rscript также с некоторыми командами - в противном случае он продолжает жаловаться на "имя файла отсутствует". Таким образом, с любой из этих возможностей, вы можете пойти с чем-то вроде

C:\Users>Rscript --verbose -e print(2+2)

При этом вы можете продолжить свою теорию, используя такие параметры, как --no-environ, --no-site-file, --vanillaи т. д., чтобы он пропускал любые файловые зависимости и проверял, попадет ли он куда-нибудь.

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