如何在R中激活水蟒环境

inn6fuwd  于 2023-06-19  发布在  其他
关注(0)|答案(6)|浏览(100)

我的目录/home/owner/anaconda3/envs/qiime2-2019.1中有qiime2程序https://qiime2.org。在Linux终端下,运行source activate /home/owner/anaconda3/envs/qiime2-2019.1来启动这个程序。
我试着在R studio中作为system('source activate /home/owner/anaconda3/envs/qiime2-2019.1')这样做,但它给了我这个错误:sh: 1: activate: not found Warning message: In system('activate /home/owner/anaconda3/envs/qiime2-2019.1') : error in running command
是否有办法在R或Rstudio中激活anaconda env?

kyks70gy

kyks70gy1#

是的,我推荐有多种方法来研究网状包,但基本上,R Studio预览版1.2能够“找到”你的conda环境。
我喜欢的方式是:

library(reticulate)
library(tidyverse)

# Seeing your enviroments
conda_list()

#Using it
conda_list()[[1]][1] %>% 
  use_condaenv(required = TRUE)

#Checking python

import platform
print(platform.python_version())

友情链接

网纹:https://rstudio.github.io/reticulate/
我的博客:https://twosidesdata.netlify.com/2019/03/23/exploratory-data-analysis-basic-pandas-and-dplyr/#how-to-set-up-reticulate

im9ewurl

im9ewurl2#

我认为在R控制台中无法成功进入conda环境,但您仍然可以通过指示路径使用environment命令。
例如,我的qime路径是/home/username/miniconda3/envs/qiime2-2019.7/bin/qiime。如果你想运行像qiime info这样的代码,你可以使用以下命令:

system("/home/username/miniconda3/envs/qiime2-2019.7/bin/qiime info")
8aqjt8rx

8aqjt8rx3#

如果你想在RStudio中使用Python,最好的方法是使用Anaconda创建一个单独的“网状”环境。
部分原因是,如果你可以使用RMarkdown来输出,需要PyQt 5,如果你覆盖PyQt,这将破坏你的Jupyter/Spyder环境。
然后你必须像这样设置一个.Renviron文件。它将R指向正确的Python env。否则,RStudio的默认环境似乎是miniconda环境。
一旦设置了单独的网状环境,并且有.Renviron指向它,所有Python包安装都应该进入该环境。

6ljaweal

6ljaweal4#

通常,我不使用Rstudio,但从一些搜索中,我可以建议你尝试设置python路径,而不是通过Conda activate激活环境。
你可以选择你要使用的Python解释器,在这里。

library(reticulate)
path_to_python <- "/anaconda3/envs/qiime2-2019.1/python"
use_python(path_to_python, required = TRUE)

以下是对同类问题的一些答案:
1> https://stackoverflow.com/a/54813273/9071644
2> https://stackoverflow.com/a/45891929/9071644
3> https://stackoverflow.com/a/43411909/9071644

2g32fytz

2g32fytz5#

我知道这是一个老问题,但我找到了一些可以激活的方法。一个是使用上面提到的库网状,但我是这样使用的:

library(reticulate)
use_condaenv("py2_env")    #activate an environment e.g py2_env
base::system(paste0("sh py2_env_program_to_run.sh"))   #run a program that requires that environment

有了网纹,我不知道你怎么会停用环境。
第二种方法,我编写了一个名为“env_eval.sh”的小bash脚本

#!/bin/bash

PATH=/opt/conda/bin:$PATH
export PATH

eval "$(conda shell.bash hook)"

然后,每当我想使用conda时,我都会在R脚本中引用它,例如:

base::system2(paste0("sh ",run_folder,"/code/bash/env_eval.sh conda activate py2_env && run_py2_env_program.sh"))

我甚至可以用这个方法停用conda环境:

base::system(paste0("sh ",run_folder,"/code/bash/env_eval.sh conda deactivate && run_program_that_should_not_be_in_any_conda_env.sh"))
p4tfgftt

p4tfgftt6#

我在尝试通过R系统调用运行gdal命令时遇到了这个问题。我发现我需要使用shell()函数而不是system()来调用我的命令。一旦conda在cmd.exe中初始化(通过运行conda init),shell(cmd)调用就可以通过R成功工作。

shell('conda activate gdal-env && gdalwarp -s_srs EPSG:6339 -t_srs EPSG:6414 in.tif out.tif')

相关问题