从R Markdown访问虚拟环境Python的问题

时间:2020-05-21 21:00:31

标签: python r virtualenv pipenv reticulate

注意:我在Windows上使用Git Bash。

因此,我正在尝试为我的课堂工作建立一个开发环境。它将涉及RPython中编码的组合。

我使用pipenvvirtualenv创建了虚拟环境,两者都遇到了相同的问题。因此,首先,让我们在子文件夹dev_env中为项目创建一个虚拟环境:

 cd project_folder/dev_env
pipenv --python 3.7
pipenv --py

输出

C:\Users\Ra Me\.virtualenvs\dev_env-5TUtSZI9\Scripts\python.exe

现在,我要进入file.rmd并尝试使用reticulate软件包。

#install.packages("reticulate")
library(reticulate)

接下来,我尝试了2种方法:

Sys.setenv(RETICULATE_PYTHON = "C:/Users/Ra Me/.virtualenvs/dev_env-5TUtSZI9/Scripts")

use_virtualenv("C:/Users/Ra Me/.virtualenvs/dev_env-5TUtSZI9/", required = TRUE)
x = 1
if x:
    print('Hello!')

他们两个都产生了错误

Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

但是,当我更改为机器上所有用户安装的Python环境的路径时,它就可以使用。

Sys.setenv(RETICULATE_PYTHON = "C:/Program Files/Python37/")

此方法也有效。但是,这里我们甚至没有使用reticulate项目。

knitr::opts_chunk$set(engine.path = list(
  python = "C:/Program Files/Python37/python.exe",
  r = "C:/Program Files/R/R-3.6.1/bin/R.exe"
))

0 个答案:

没有答案