Les premières lignes que j'exécute lors du lancement de ma session rstudio sont:
library(reticulate)
use_python("/usr/local/lib/python3.6/site-packages")
Cependant, lorsque j'exécute py_config()
, il apparaît comme utilisant toujours l'installation par défaut python 2.7.
Il s'agit d'un problème b.c Je ne peux pas importer de modules installés pour python3. Une idée pourquoi cela ne fonctionne pas? J'ai suivi la documentation assez attentivement.
J'ai observé que ni la technique "use_python ('path')" ni la tactique de Sys.setenv (RETICULATE_PYTHON = 'path') dans .RProfile ont fonctionné pour moi (bien sûr, je suis sûr que cela a dû fonctionner pour les autres.)
Dans tous les cas, la ligne au terminal,
which -a python python3
a produit deux chemins au choix (un pour python2 et un pour python3 installé sur mon mac), alors j'ai pu créer un fichier ".Renviron" dans mon répertoire personnel avec cette seule ligne:
RETICULATE_PYTHON="/usr/local/bin/python3"
Après avoir redémarré RStudio, library(reticulate)
active le python3 souhaité et repl_python()
ouvre une fenêtre interactive python3, etc. etc.
use_python("path/to/python3")
définitivement ne fonctionne pas , bien que Reticulate Python version configuration article le dit, ne le croyez pas! :-)
J'ai essayé de définir l'interpréteur avec la version actuelle de Reticulate (1.13), et le package m'a donné une réponse très honnête:
> library("reticulate")
> repl_python()
Python 2.7.15 (/usr/bin/python)
Reticulate 1.13 REPL -- A Python interpreter in R.
> use_python('/usr/bin/python3', require=T)
ERROR: The requested version of Python ('/usr/bin/python3') cannot be
used, as another version of Python ('/usr/bin/python') has already been
initialized. Please restart the R session if you need to attach
reticulate to a different version of Python.
Error in use_python("/usr/bin/python3", require = T) :
failed to initialize requested version of Python
Heureusement, mettre un fichier .Renviron
Contenant la ligne RETICULATE_PYTHON="/path/to/python3"
Dans le répertoire personnel de l'utilisateur fonctionne :
> library("reticulate")
> py_config()
python: /usr/bin/python3
libpython: /usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so
pythonhome: /usr:/usr
version: 3.6.8 (default, Oct 7 2019, 12:59:55) [GCC 8.3.0]
numpy: [NOT FOUND]
NOTE: Python version was forced by RETICULATE_PYTHON
Enfin, voici la valeur ajoutée de ma réponse:
Vous pouvez configurer l'interpréteur Reticulate Python pour tous les utilisateurs en ajoutant la ligne RETICULATE_PYTHON
Au fichier global Renviron
. Il se trouve généralement dans le etc
sous-répertoire du répertoire personnel de R. Vous pouvez découvrir où se trouve le répertoire principal de R en exécutant la fonction R.home()
dans l'interpréteur R. Dans mon cas (Ubuntu 18.04.3 LTS), c'était /usr/lib/R
, j'ai donc édité /usr/lib/R/etc/Renviron
. Vous avez évidemment besoin des droits d'administrateur pour ce faire.
Vous devez passer le chemin vers le binaire Python dans use_python()
.
Si votre système d'exploitation par défaut Python était 2.7:
library(reticulate)
Vous pouvez utiliser sys
pour vérifier les versions:
sys <- import("sys")
La version serait 2.7:
sys$version
[1] "2.7.10 (default..."
Si vous le changez ensuite en utilisant `use_python ():
use_python('/usr/local/bin/python3')
Vous verriez que reticulate
utilise maintenant un noyau différent:
sys$version
[1] "3.6.4 (default..."