Проблема при вызове исполняемого файла в пути, который имеет место
Я только что установил 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\
Что интересно:
- если я просто позвоню
Rscript.exe --version
он выдает ту же ошибку, что очень странно: если он его находит, почему он не может его запустить!?! Единственное объяснение, которое я могу найти, заключается в том, что ошибка возникает при поиске зависимости Rscript.exe - Я также заметил, что это работает
"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
и т. д., чтобы он пропускал любые файловые зависимости и проверял, попадет ли он куда-нибудь.