簡體   English   中英

使用 reticulate 在 RStudio 和 shiny 應用程序中運行 python 腳本時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM