[英]Error running python script in RStudio and shiny app using reticulate
我有一个 python 脚本,其中我使用“adtk”package 定义了一个 function。 使用网状,我从 R 调用我的 function 并将其应用于一些数据。 这完全没有错误。 但是,当我尝试在 shiny 应用程序中做完全相同的事情时,它给了我以下错误:模块 adtk 没有属性转换器!
RStudio代码片:
library(reticulate)
use_condaenv('my_conda_env')
source_python("my_python_script.py")
Python 脚本:
import adtk
def my_func():
adtk.transformer.DoubleRollingAggregate()
...
听起来在本地运行您的代码可能会无意中使用您的系统 Python (及其 adtk 包),而不是使用您的 conda 环境,它可能缺少 adtk 和/或其某些模块。
当您运行library(reticulate)
时,网状 package 将尝试初始化其最佳猜测版本的 Python,这可能不是您打算使用的版本。 由于 Python 已经为您的 session 初始化,之后运行use_condaenv('my_conda_env')
可能会被忽略。 (您可以通过尝试运行use_condaenv('my_conda_env', required = TRUE)
来测试它,而不是查看是否收到类似于以下内容的错误: The requested version of Python (<conda env python path>) cannot be used, as another version of Python (<system python path>) has already been initialized.
)
要强制您的代码在您的 conda 环境中运行,请重新启动 R session 并运行reticulate::use_condaenv('my_conda_env', required = TRUE)
。 通过运行reticulate::py_config()
确认正在使用环境。
您可以通过查看已安装的软件包来仔细检查您的 conda 环境中是否安装了正确版本的 adtk。 最后,确保在您运行 Shiny 应用程序的系统上支持 conda(例如, 在 shinyapps.io 目前不支持 conda ,但您可以改用 virtualenv。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.