hac*_*man 11 r python-3.x reticulate
启动rstudio会话时运行的第一行是:
library(reticulate)
use_python("/usr/local/lib/python3.6/site-packages")
Run Code Online (Sandbox Code Playgroud)
但是,当我运行py_config()
它时,显示仍在使用默认的python 2.7安装。
这是一个问题,因为我无法导入已为python3安装的任何模块。知道为什么这行不通吗?我非常仔细地遵循了文档。
小智 20
它对我有用:
Sys.setenv(RETICULATE_PYTHON = "/usr/bin/python3")
library(reticulate)
Run Code Online (Sandbox Code Playgroud)
在第一次使用 reticulate 之前设置 RETICULATE_PYTHON 似乎很重要。
Geo*_*ton 10
我观察到.RProfile中的“ use_python('path')”技术和Sys.setenv(RETICULATE_PYTHON ='path')的策略对我来说都不起作用(当然,我确信它必须对其他人也有用。)
无论如何,终端上的线路
which -a python python3
Run Code Online (Sandbox Code Playgroud)
确实产生了两个可供选择的路径(一个用于python2,一个用于在我的mac上安装的python3),因此我能够在主目录中创建一个“ .Renviron”文件,其中只有以下一行:
RETICULATE_PYTHON="/usr/local/bin/python3"
Run Code Online (Sandbox Code Playgroud)
重新启动RStudio之后,library(reticulate)
激活所需的python3,并repl_python()
打开python3交互式窗口,等等。
use_python("path/to/python3")
肯定不行,虽然Reticulate Python 版本配置文章是这么说的。不信!:-)
我尝试使用当前的 Reticulate 版本 (1.13) 设置解释器,并且该软件包给了我一个非常诚实的答案:
> 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
Run Code Online (Sandbox Code Playgroud)
幸运的是,将.Renviron
包含该行的文件RETICULATE_PYTHON="/path/to/python3"
放入用户的主目录确实有效:
> 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
Run Code Online (Sandbox Code Playgroud)
最后,这是我的答案的附加值:
您可以通过将RETICULATE_PYTHON
行添加到全局Renviron
文件来为所有用户配置 Reticulate Python 解释器。它通常位于etc
R 主目录的子目录中。您可以通过R.home()
在 R 解释器中运行该函数来找出 R 的家在哪里。在我的情况下(Ubuntu 18.04.3 LTS)它是/usr/lib/R
,所以我编辑了/usr/lib/R/etc/Renviron
. 您显然需要管理员权限才能执行此操作。
在 Mac OSX 上唯一对我有用的是在终端中执行以下命令:
touch $HOME/.Renviron
Run Code Online (Sandbox Code Playgroud)
然后打开它,我使用vim,所以我的命令如下:
vim $HOME/.Renviron
Run Code Online (Sandbox Code Playgroud)
添加以下内容(对于 anaconda):
RETICULATE_PYTHON="/anaconda3/bin/python"
Run Code Online (Sandbox Code Playgroud)
否则,在终端中输入:which python3
并输入您的输出路径
RETICULATE_PYTHON="your path from which python3"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4355 次 |
最近记录: |