使用 reticulate::use_virtualenv 加载包失败

Failing to load package using reticulate::use_virtualenv

我一直在尝试通过 R 网状结构 运行 一些 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

这似乎是我想要的。问题是我似乎无法真正使用这个环境。如果我测试 weather numpy 是否可用(py_numpy_available())我没有得到它,当我尝试任何 import 语句时(无论是对一个已安装的软件包还是对 os 之类的东西)R 崩溃与:

R Session Aborted. R encountered a fatal error. The session was terminated

我尝试了不同的网状手册 (here and here) 和不同的 git 问题或 SO 问题,但仍然无法解决这个问题。

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

Virtual environment functions are not supported on Windows (the use of conda environments is recommended on Windows).

尝试:

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

conda_python(envname =  "r-scrublet")

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

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 到系统路径。


为了代码段的完整性,设置准备就绪后,指定它的使用者:

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