При запуске R из приложения R или RStudio системные вызовы обращаются к другой среде, чем при запуске R из терминала.Из-за этого переменная окружения PATH
, которую вы настроили для запуска правильной версии исполняемого файла unix в программе оболочки, отличается от той, которая используется в вызове system2()
или system()
в сеансе R в любом из этихПриложения.Чтобы решить эту проблему, вам нужно установить путь в вашей среде R.
В интерактивном сеансе вы можете сделать это:
# Reproducing your problem (in the R application or RStudio)
system2("python", args="-V")
# Python 2.7.10
# set a new PATH in the environment accessed by R
# This is the line you can also add to your .Rprofile
Sys.setenv(PATH = paste(c("//anaconda/bin", Sys.getenv("PATH"),
collapse = .Platform$path.sep))
# For users other than the OP, you'll want to use the directory
# where your preferred installation of python is. For the OP that's
# //anaconda/bin
# Confirm
system2("python", args="-V")
# Python 3.6.0 :: Anaconda 4.3.0 (x86_64)
Системная команда python
должна теперь находиться в каталоге //anaconda/bin
, а не /usr/bin
.Это, конечно, зависит от того, где эти исполняемые файлы Unix находятся в вашей системе, поэтому для читателей, кроме OP, вам нужно будет использовать каталог, в котором находится нужная версия python
.
Этот PATH
будет действовать в течение оставшейся части сеанса R.Чтобы изменить свой путь во всех сеансах R, обновите (или создайте, если вы этого еще не сделали) свой файл .Rprofile
.Файл .Rprofile
может находиться (или идти) в вашем каталоге HOME
или R_HOME
.Если вы добавите вышеуказанную строку к .Rprofile
, каждый раз при инициализации R они будут выполняться в начале каждого сеанса R.