今天继续测试新的单细胞多组学分析软件,主角是MOFA
而在RSTUDIO上运行MOFA需要安装python依赖,官方给出的脚本是:
library(reticulate)
use_python("YOUR_PYTHON_PATH", required=TRUE)
py_install("mofapy", envname = "r-reticulate", method="auto")
我依样葫芦之后,报错如下:
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
# All requested packages already installed.
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- mofapy
Current channels:
- https://conda.anaconda.org/conda-forge/win-64
- https://conda.anaconda.org/conda-forge/noarch
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/msys2/win-64
- https://repo.anaconda.com/pkgs/msys2/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
Error: one or more Python packages failed to install [error code 1]
我使用anaconda prompt来下载它报错也是这个
那我想,既然这几个channels找不到mofapy,就要添加channels吧,就加了清华的源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
再用anaconda prompt下载果然就可以成功了,但是回到R上,还是一样的报错!
查阅了一下别人的回答https://github.com/rstudio/reticulate/issues/623
修改代码为:
py_install("mofapy", envname = "r-reticulate", method="auto",pip=TRUE)
下载之后的结果如下:
Requirement already up-to-date: mofapy in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (1.2)
Requirement already satisfied, skipping upgrade: pandas in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (1.0.5)
Requirement already satisfied, skipping upgrade: h5py in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (2.10.0)
Requirement already satisfied, skipping upgrade: numpy in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (1.19.0)
Requirement already satisfied, skipping upgrade: sklearn in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (0.0)
Requirement already satisfied, skipping upgrade: scipy in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (1.5.1)
Requirement already satisfied, skipping upgrade: argparse in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from mofapy) (1.4.0)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.6.1 in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from pandas->mofapy) (2.8.1)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from pandas->mofapy) (2020.1)
Requirement already satisfied, skipping upgrade: six in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from h5py->mofapy) (1.15.0)
Requirement already satisfied, skipping upgrade: scikit-learn in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from sklearn->mofapy) (0.23.1)
Requirement already satisfied, skipping upgrade: joblib>=0.11 in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from scikit-learn->sklearn->mofapy) (0.16.0)
Requirement already satisfied, skipping upgrade: threadpoolctl>=2.0.0 in c:\programdata\miniconda3\envs\r-reticulate\lib\site-packages (from scikit-learn->sklearn->mofapy) (2.1.0)
也没报错没啥说成功,就测试一下吧~
> py_module_available("mofapy")
[1] TRUE
成功啦!开心撒花
注意安装mofapy时创建了虚拟环境,因此下次使用它的时候要切换到该环境下的python才可以使用
use_python('C:\\ProgramData\\Miniconda3\\envs\\r-reticulate\\python.exe',required = T)
#指定环境路径
use_virtualenv("/your path/",required = T)