我遇到了适用于R的Azure机器学习SDK的问题:“模块'azureml'没有属性'core'” ...

由于不是我自己的原因,我必须使用azureml将机器学习(我自己的东西,用R编写)应用于来自Blob存储中的数据仓库中的数据。建模后的输出应放回Blob存储中,以便可以从数据仓库对其进行访问。
我已经在本地计算机上的R中编写了代码(存储在git repo中)。最好是,我会找到某种方法将我的代码从git中拉到azureml环境中的管道中,以便只要blob存储中有新数据可用,就可以直接运行它。

我开始了疯狂的教程,并发现了以下看似相关的演练:Train and deploy your first model with Azure ML(和this one)。

但是...在尝试了所有我能想到的之后,我陷入了第一步。安装完所有(或至少..我所认为的)软件包,模块,应用程序等,并在RStudio中运行以下代码后:

   library(azuremlsdk)
    existing_ws <- get_workspace(name = name,
                                 subscription_id = subscription_id,
                                 resource_group)


我遇到了无法修复的错误:


  AttributeError:模块“ azureml”没有属性“ core”


似乎azuerml应该具有“核心”属性,但是更仔细地观察时,确实没有这样的属性。
函数“ get_workspace()”正在尝试访问:“ azureml $ core $ Workspace $ get”。
我发现确实存在“ azuerML $ Workspace”,但是后来我不知道如何使它工作。

谁能向我解释为什么我遇到此错误?
有谁知道更好的教程,如何将我的R代码连接到Azureml的云服务?

任何朝着正确方向的指针都将受到赞赏!



编辑-仍未解决:
在别人的建议之后,我对installation进行了两次,三次和四次检查。

我更新了R,现在正在运行:


  版本
  
  平台x86_64-w64-mingw32
  拱x86_64
  操作系统mingw32
  系统x86_64,mingw32
  状态
  专业3
  小6.2
  年2019
  第十二个月
  第十二天
  svn版本77560
  语言R
  version.string R版本3.6.2(2019-12-12)
  昵称黑暗与暴风雨之夜


我使用Python 3.6.10安装了Conda
我安装了the azuremlsdk R package(我尝试了两个提供的选项)。
然后,我意识到与azure-modules的版本存在一些不一致之处,因此我也尝试使用关键字“ multi-arch”进行安装:

remotes::install_cran('azuremlsdk', repos = 'http://cran.us.r-project.org', INSTALL_opts=c("--no-multiarch"))


然后,我installed the azureml python sdk
我再次查看了所有版本(使用python -m pip Frozen):


  azure-common == 1.1.24
  
  天青-graphrbac == 0.61.1
  
  azure-mgmt-authorization == 0.60.0
  
  azure-mgmt-containerregistry == 2.8.0
  
  azure-mgmt-keyvault == 2.0.0
  
  azure-mgmt-resource == 7.0.0
  
  azure-mgmt-storage == 7.1.0
  
  天蓝色== 0.2.7
  
  azureml-automl-core == 1.0.83.1
  
  azureml-核心== 1.0.69
  
  azureml-dataprep == 1.1.36
  
  azureml-dataprep-native == 13.2.0
  
  azureml-pipeline == 1.0.69
  
  azureml-pipeline-core == 1.0.69
  
  azureml-pipeline-steps == 1.0.69
  
  azureml-sdk == 1.0.69
  
  天蓝色遥测== 1.0.69
  
  天青素-train == 1.0.69
  
  azureml-train-automl-client == 1.0.83
  
  azureml-train-core == 1.0.69
  
  azureml-火车-restclients-hyperdrive == 1.0.69


当我惊讶地看到所有1.0.69版本而不是1.0.83版本时,我使用以下命令重新安装了azureml python sdk:

azuremlsdk::install_azureml(version = "1.0.83")


从某种意义上说,实际上所有版本现在都是1.0.83,这是可行的:


  azure-common == 1.1.24
  
  天青-graphrbac == 0.61.1
  
  azure-mgmt-authorization == 0.60.0
  
  azure-mgmt-containerregistry == 2.8.0
  
  azure-mgmt-keyvault == 2.0.0
  
  azure-mgmt-resource == 7.0.0
  
  azure-mgmt-storage == 7.1.0
  
  天蓝色== 0.2.7
  
  azureml-automl-core == 1.0.83.1
  
  azureml-core == 1.0.83
  
  azureml-dataprep == 1.1.36
  
  azureml-dataprep-native == 13.2.0
  
  azureml-pipeline == 1.0.83
  
  azureml-pipeline-core == 1.0.83
  
  azureml-pipeline-steps == 1.0.83
  
  azureml-sdk == 1.0.83
  
  天蓝色遥测== 1.0.83
  
  azureml-train == 1.0.83
  
  azureml-train-automl-client == 1.0.83
  
  azureml-train-core == 1.0.83
  
  azureml-火车-restclients-hyperdrive == 1.0.83


但是,仍然...缺少核心时出现错误。运行时我都明白了:

library(azuremlsdk)
get_current_run()


以及在运行时:

library(azuremlsdk)
existing_ws <- get_workspace(name = name,
                         subscription_id = subscription_id,
                         resource_group)


请注意,在启动RStudio后第一次运行此代码,我得到了错误:


  py_get_attr_impl(x,name,silent)中的错误:
    AttributeError:模块“ azureml”没有属性“ _base_sdk_common”


然后每次我得到这个错误:


  py_get_attr_impl(x,name,silent)中的错误:
    AttributeError:模块“ azureml”没有属性“ core”


任何帮助将非常感激!

最佳答案

此问题是由最新的网状1.14版本引入的,其中网状将创建默认的r-reticulate conda环境。由于Azure ML在名为r-azureml的环境中安装python SDK,因此网状网使用的r-reticulate环境缺少python SDK。 PR中已解决此问题的修补程序,该修补程序已合并到master中。如果您有网状版本1.14并遇到此问题,请立即从GitHub安装。我们将很快发布CRAN的更新。

08-19 23:02