Rmarkdown中Python代码块无法调用numpy的问题求助
问题分析与解决方法
问题根源
你通过py_install('numpy')将numpy安装到了reticulate默认的r-reticulate conda环境,但当前reticulate实际调用的是系统独立安装的Python3.11(路径C:/Users/MID80/AppData/Local/Programs/Python/Python311/python.exe),这个系统Python环境里并没有安装numpy,所以py_module_available('numpy')返回FALSE。从py_discover_config()的输出也能明确看到:numpy: [NOT FOUND],且标注了NOTE: Python version was forced by use_python() function,说明你之前通过use_python()指定了系统Python路径,但该环境未配置numpy。
解决方案(二选一即可)
方案1:给当前使用的系统Python安装numpy
直接给系统Python环境安装numpy,在R控制台运行:
reticulate::py_install("numpy", pip = TRUE)
或者打开系统命令提示符(CMD),执行:
# 若存在多Python版本,可指定完整路径 C:/Users/MID80/AppData/Local/Programs/Python/Python311/python.exe -m pip install numpy
方案2:切换到已安装numpy的r-reticulate conda环境
如果你想使用reticulate自带的conda环境,在R控制台运行以下代码切换并验证:
# 切换到r-reticulate环境 reticulate::use_condaenv("r-reticulate", required = TRUE) # 检查当前环境配置 reticulate::py_discover_config() # 再次验证numpy是否可用 reticulate::py_module_available('numpy')
切换完成后,即可在Python代码块中正常调用numpy。
额外提示
如果在R Markdown中使用,建议在文档开头的设置代码块中提前指定Python环境,避免环境冲突:
knitr::opts_chunk$set(echo = TRUE) # 固定使用r-reticulate环境 reticulate::use_condaenv("r-reticulate", required = TRUE)
内容的提问来源于stack exchange,提问作者Mia
相关产品推荐
相关产品推荐

