【问题标题】:Failing to load package using reticulate::use_virtualenv使用 reticulate::use_virtualenv 加载包失败
【发布时间】:2020-08-04 20:25:21
【问题描述】:

我一直试图通过 R reticulate 运行一些 python 代码,但没有成功。我尝试创建一个虚拟环境并在其中安装两个包:numpy 和一个名为scrublet 的GitHub 包。

library(reticulate)
if(!"r-scrublet" %in% virtualenv_list()) {
  virtualenv_create("r-scrublet")
  virtualenv_install("r-scrublet", c("numpy","git+https://github.com/AllonKleinLab/scrublet.git"))
}
use_virtualenv(virtualenv = "r-scrublet", required = T)

然后我想激活环境并在其上运行代码。当我运行 py_discover_config() 时,我得到了输出:

python:         C:/Users/gilad/Documents/.virtualenvs/r-scrublet/Scripts/python.exe
libpython:      C:/Users/gilad/Documents/.virtualenvs/r-scrublet/Scripts/python36.dll
pythonhome:     C:/Users/gilad/Documents/.virtualenvs/r-scrublet
version:        3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:/Users/gilad/Documents/.virtualenvs/r-scrublet/Lib/site-packages/numpy
numpy_version:  1.19.1

NOTE: Python version was forced by use_python function

这似乎是我想要的。问题是我似乎无法真正使用这个环境。如果我测试天气 numpy 是否可用 (py_numpy_available()) 我得到了,当我尝试任何 import 语句时(无论是已安装的软件包之一,甚至是像 os 这样的东西)R 崩溃:

R 会话中止。 R 遇到致命错误。会话已终止

我尝试了不同的网状手册(herehere)和不同的 git 问题或 SO 问题,但仍然无法弄清楚。

【问题讨论】:

    标签: r virtualenv reticulate


    【解决方案1】:

    从您提供的安装路径来看,您使用的是 Windows。
    如果你参考virtualenv doc

    Windows 不支持虚拟环境功能(Windows 推荐使用conda environments)。

    试试:

    library(reticulate)
    conda_create("r-scrublet")
    conda_install(envname="r-scrublet", packages ="numpy","pip","git")
    
    conda_python(envname =  "r-scrublet")
    

    scrublet.git 可以通过从r-scrublet 环境根文件夹运行来添加:

    Scripts\pip install git+https://github.com/AllonKleinLab/scrublet.git
    

    或直接来自 R:

    conda_install(envname='r-scrublet','git+https://github.com/AllonKleinLab/scrublet.git',pip=T)
    

    只要您应用此patch。为避免补丁,您可以将\r-scrublets\Library\bin添加到系统路径。


    为了sn-p的完整性,一旦设置准备好,指定它的使用者:

    use_miniconda("r-scrublet", required=T)
    scrub <- import("scrublet")
    

    【讨论】:

    • @Gilad,查看我的编辑以避免从终端安装。
    • 非常感谢 :) 让我自己对在 unix 和 windows 上工作感到困惑,并且失去了对每个工作而不是每个工作的跟踪。但现在效果很好:)
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2020-10-31
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    相关资源
    最近更新 更多