错误:找不到/ usr / bin / python3的Python环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:找不到/ usr / bin / python3的Python环境相关的知识,希望对你有一定的参考价值。

我正在尝试使用R中的reticulate()包来运行某些Python包。

我运行以下内容:

library(reticulate)
py_install("pandas")

我收到此错误:

错误:找不到/ usr / bin / python3的Python环境

正在运行py_config()给出:

python:         /usr/bin/python3
libpython:      /usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so
pythonhome:     //usr://usr
version:        3.6.9 (default, Nov  7 2019, 10:44:02)  [GCC 8.3.0]
numpy:          /home/user/.local/lib/python3.6/site-packages/numpy
numpy_version:  1.18.1
tensorflow:     /home/user/.local/lib/python3.6/site-packages/tensorflow

python versions found: 
 /home/user/.virtualenvs/r-reticulate/bin/python
 /usr/bin/python3
 /usr/bin/python
 /home/user/anaconda3/bin/python
 /home/user/env/bin/python
 /home/user/miniconda3/bin/python

[当我导航到/usr/bin/时,有一个名为python3.7的文件,有一个名为python3的文件夹,但是当我尝试打开它时,出现以下错误Directory /usr/bin/python3.6: no such file or directory。我无法打开或访问python3目录中的/usr/bin/文件夹(或任何文件夹)。

我也跑步

use_python("/home/user/miniconda3/lib/python3.7/") 
py_install("pandas")

这给了我同样的错误。

我正在运行安装了RStudio的AWS Ubuntu实例。

EDIT现在重新安装reticulate并运行py_install("pandas")会得到:

Using virtual environment '~/.virtualenvs/r-reticulate' ...
/home/user/.virtualenvs/r-reticulate/bin/python: No module named pip
Error in strsplit(output, "\\s+")[[1]] : subscript out of bounds
In addition: Warning message:
In system2(python, c("-m", "pip", "--version"), stdout = TRUE) :
  running command ''/home/user/.virtualenvs/r-reticulate/bin/python' -m pip --version'

具有状态1

编辑2

当我在终端中运行pip --version时,我会得到pip 19.3.1 from /home/user/miniconda3/lib/python3.7/site-packages/pip (python 3.7)

然后我再次在RStudio中运行py_config()并获得以下输出:

python:         /home/user/.local/share/r-miniconda/envs/r-reticulate/bin/python
libpython:      /home/user/.local/share/r-miniconda/envs/r-reticulate/lib/libpython3.6m.so
pythonhome:     /home/user/.local/share/r-miniconda/envs/r-reticulate:/home/user/.local/share/r-miniconda/envs/r-reticulate
version:        3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29)  [GCC 7.3.0]
numpy:          /home/user/.local/lib/python3.6/site-packages/numpy
numpy_version:  1.18.1

我使用install_miniconda()安装了minicode,然后设置了以下路径:

use_python("/home/user/.virtualenvs/r-reticulate/bin/python/")
use_virtualenv("/home/user/.virtualenvs/r-reticulate/bin/python")
use_miniconda("/home/user/.local/share/r-miniconda/")

我跑步时:

py_install("pandas")
py_install("numpy")

我没有收到警告,没有安装软件包。自从我跑步时,我还是有点卡住:

devtools::install_github("ModelOriented/shapper")
shapper::install_shap()

我得到:

错误:.onLoad在'shapper'的loadNamespace()中失败,详细信息:调用:py_module_import(模块,转换=转换)错误:ModuleNotFoundError:没有名为“ shap”的模块

答案

虽然您的问题可能涉及几件事,包括从小的错别字到大的元素,但请考虑以下因素:

  1. PATH:您不应在use_python(...)中使用正斜杠结尾Python路径。您应该指向Python可执行文件,而不是文件夹。尽管Windows将.exe附加到可执行文件,但是Linux不包括新手可能认为是目录但不是目录的扩展名。这类似于R文件夹中的Rterm可执行文件(甚至是Rscriptbin)。

  2. EXECUTABLE:在use_python(...)中指定的路径与找到的python版本中列出的任何路径都不匹配。仔细对齐文件夹和拼写。一种测试是尝试通过指向确切路径直接从终端打开python可执行文件。如果正确安装,则下面的调用应使用如下所示的启动消息启动Python shell:

    > /home/user/miniconda3/bin/python
    Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [GCC 8.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pandas
    >>> exit()
    

    再次,这类似于调用R shell:

    > /path/to/bin/R
    R version 3.5.1 (2018-07-02) -- "Feather Spray"
    Copyright (C) 2018 The R Foundation for Statistical Computing
    Platform: x86_64-pc-linux-64 (64-bit)
    
    R is free software and comes with ABSOLUTELY NO WARRANTY.
    You are welcome to redistribute it under certain conditions.
    Type 'license()' or 'licence()' for distribution details.
    
      Natural language support but running in an English locale
    
    R is a collaborative project with many contributors.
    Type 'contributors()' for more information and
    'citation()' on how to cite R or R packages in publications.
    
    Type 'demo()' for some demos, 'help()' for on-line help, or
    'help.start()' for an html browser interface to help.
    Type 'q()' to quit R.
    > library(reticulate)
    > q()
    
  3. PERMISSIONS:通常,如果目录和文件存在,但是程序无法访问它们,则用户没有适当的读取,写入或可执行权限。 Linux的主要方面之一是其安全模型。在文件夹级别ls -l /usr/bin上检查权限,然后用chmodchown调整RStudio / R用户。这可能涉及系统管理员。

  4. ENVIRONMENT:如果使用了诸如Anaconda之类的虚拟环境,请确保在运行任何内容之前将其初始化。另外,请记住,虚拟环境不会在其范围之外看到任何东西,反之亦然。因此,如果您的RStudio和R在中运行,它将找不到它以外的任何内容(尽管它可能会列出机器上的所有内容)。此外,这可能还涉及您的AWS实例。仔细检查outside RStudio环境中的安装。

  5. LIBRARIES
  6. :即使您指向适当的Python版本,以后也可能会遇到导入错误。简单来说,您必须在pandas中指向的任何Python版本上安装reticulate(第三方模块)。请参阅上面的测试,检查import pandas

    请记住,Ubuntu 18.04随附Python 3.6(非3.7+),而Ubuntu 16.04随附Python 2.7(非3+)。因此,您显示了许多版本。而且Python不随Pandas一起提供。数据分析库必须安装在特定的Python版本上。这类似于安装在不同R版本上的软件包(例如,R。3.5软件包不同于R 3.6软件包)。

以上是关于错误:找不到/ usr / bin / python3的Python环境的主要内容,如果未能解决你的问题,请参考以下文章

编译错误:/ usr / bin / ld:找不到-lclntsh

Makefile 错误:/usr/bin/ld: 找不到 -lsqlite3

/usr/bin/ld: 找不到 -lXext 依赖问题

/usr/bin/ld 找不到 -lbsd

定时任务任务脚本报命令找不到错误原因分析

/usr/bin/ld: 找不到 -l-L/usr/lib