Заставить system2 использовать определенную версию python - PullRequest
0 голосов
/ 19 ноября 2018

У меня на рабочем столе установлены и python2, и python3.Если я делаю python -V в терминале, я получаю Python 3.6.0 :: Anaconda 4.3.0 (x86_64).

Однако, если я использую команду system2 из R

system2("python", args = "-V")

, она сообщаетPython 2.7.10

Если я укажу полный путь, я получу правильную версию

system2("//anaconda/bin/python", args = "-V")

Python 3.6.0 :: Anaconda 4.3.0 (x86_64)

Но я бы хотелsystem2 просто использовать python3 по умолчанию.Есть ли способ изменить версию, которую он использует?Это для Mac OSX

1 Ответ

0 голосов
/ 19 ноября 2018

При запуске 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.

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