Ubuntu中已安装anaconda3,R调用python中pandas包报错ModuleNotFoundError

5 篇文章 1 订阅

遇到的问题

在Ubuntu 20.04 LTS环境中,调用conda一个已安装R、python、pandas包的env。

程序名.py中第一行为:

import pandas as pd

随后在R中输入:

library(reticulate)
py_run_file('程序名.py')

报错信息为:

Error in py_run_file_impl(file, local, convert) :
  ModuleNotFoundError: No module named 'pandas'

Detailed traceback:
  File "<string>", line 2, in <module>
  File "/home/自己设置的R包路径/reticulate/python/rpytools/loader.py", line 44, in _import_hook
    level=level

尝试解决的过程

在终端输入pip install pandas命令后,提示我该包已经存在,但是进入R后又调用失败,猜测是因为R使用的python路径和envs的python路径不相同。

在看了R调用Python(reticulate包的基本使用)一文之后,分别输入

use_condaenv("/home/douer_unix/anaconda3/envs/环境名/bin/python")

use_python("/home/douer_unix/anaconda3/envs/环境名/bin/python")

再调用该包均还是报错,不太懂是什么情况,继续尝试。

解决

输入py_config()查看安装的python版本环境,一看吓一跳

> py_config()
python:         /home/douer_unix/.local/share/r-miniconda/envs/r-reticulate/bin/python
libpython:      /home/douer_unix/.local/share/r-miniconda/envs/r-reticulate/lib/libpython3.6m.so
pythonhome:     /home/douer_unix/.local/share/r-miniconda/envs/r-reticulate:/home/douer_unix/.local/share/r-miniconda/envs/r-reticulate
version:        3.6.13 | packaged by conda-forge | (default, Feb 19 2021, 05:36:01)  [GCC 9.3.0]
numpy:          /home/douer_unix/.local/share/r-miniconda/envs/r-reticulate/lib/python3.6/site-packages/numpy
numpy_version:  1.19.5

我啥时候装的r-miniconda???
(后面反应过来好像是我在install.packages(‘reticulate’)的时候正在峡谷奋战,看屏幕问了个是否安装miniconda我直接输y了……)

找到了原因后直接卸载:

$ cd /home/douer_unix/.local/share/r-miniconda/
$ ls
LICENSE.txt  compiler_compat  condabin  etc      info  pkgs   shell  x86_64-conda_cos6-linux-gnu
bin          conda-meta       envs      include  lib   share  ssl
$ cd ..
$ rm -r r-miniconda/
$ cd
$ sudo vim .bashrc

参考了一下 linux 服务器上删除miniconda流程 一文,但是我在.bashrc的时候发现miniconda路径又不在其中,就没有删。

再进入R调用一下试试:

> library(reticulate)
> py_config()
No non-system installation of Python could be found.
Would you like to download and install Miniconda?
Miniconda is an open source environment management system for Python.
See https://docs.conda.io/en/latest/miniconda.html for more details.

Would you like to install Miniconda? [Y/n]: n

……略……

python versions found:
你已有的python路径

这里选了n之后,它会给出你环境中已有的python路径,选择一个你需要的路径输入:

$ use_python("你需要的+上面显示的一个路径")

再调用就大功告成啦!


以防万一,最后附上一下 reticulate的官方说明网站,需要自取~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值