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

遇到的问题

在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的官方说明网站,需要自取~

### 解决方案 对于在 Ubuntu 系统遇到的 `pip install pandas` 失败问题,以及版本过低的情况,建议先升级 pip 版本到最新稳定版。旧版本可能存在兼容性问题或者缺少必要的功能来处理某些安装需求[^1]。 #### 升级 Pip 到最新版本 为了确保能够成功安装 pandas 并解决可能存在的权限问题,推荐使用虚拟环境来进行操作,这有助于隔离不同项目的依赖关系并减少冲突的可能性。不过,在此之前,可以通过以下命令全局更新 pip: ```bash python3 -m pip install --upgrade pip ``` 这条指令会强制 Python 使用其内置模块 `-m` 来运行 pip 工具,并将其升级至最新版本。这样做可以避免因为系统默认使用的 pip 路径不一致而导致的问题[^4]。 #### 安装 Pandas 库 一旦确认 pip 已经被正确更新之后,就可以继续尝试安装 pandas 了。考虑到不同的 Python 版本可能会有不同的安装路径,应该明确指定要针对哪个解释器进行安装。如果是想让安装适用于 Python 3,则应采用如下方法之一: - **通过 python3 显式调用** ```bash python3 -m pip install pandas ``` - 或者直接利用 `pip3` 命令 ```bash pip3 install pandas ``` 这两种方式都可以有效地将 pandas 添加到 Python 3 的环境去[^2]。 另外需要注意的是,如果是在 Anaconda 发行版下工作的话,默认情况下不需要额外安装 pip;Anaconda 自带了一个名为 conda 的管理工具,可以直接用来安装 pandas 及其他科学计算所需的库文件。 ### 验证安装是否成功 完成上述步骤后,可以在 Python 控制台里测试一下能否正常导入 pandas 模块: ```python import pandas as pd print(pd.__version__) ``` 这段简单的脚本能帮助验证 pandas 是否已经被正确加载到了当前的工作空间之
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值