10

I'm trying to use python packages in R, but I keep getting the same error:

ImportError: cannot import name 'read_csv' from 'pandas' (unknown location)

I cant use "py_install" neither:

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:

  - python=3.1

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]

I have tried to specify my folder in which the packages are in, but it doesn't work. Hope you guys can help.

My code:

library(reticulate)
use_condaenv("C:/Users/Bruger/AppData/Local/r-miniconda/envs/r-reticulate")
import("pandas")

py = py_run_string

py("import pandas as pd")
py("from pandas import read_csv")

enter image description here

merv
  • 67,214
  • 13
  • 180
  • 245
hideonbush
  • 149
  • 1
  • 10
  • I'm not sure that I understand your comment, can you try to explain it again. The image just show the path to the directory. – hideonbush Oct 13 '21 at 08:38

2 Answers2

10

Conda 4.10 is incompatible with python 3.10.

The issue is not related to R, and maybe there is nothing wrong with your code. The same type of problem occurred at the following SO issues:

Solutions

If you need python 3.10+

If you need python 3.10 or newer, you must have conda 4.11 or newer. Install the desired conda version, or switch to the base environment and update conda using conda update conda. Something like:

conda activate base
conda update conda
conda create --name r-reticulate python=3.10 pandas numpy scipy matplotlib scikit-learn
conda activate r-reticulate

You may need to add non-default channels to your conda, as I get an UnsatisfiableError using it. By using the conda-forge channel e.g., I got no error (but this may install newer than usual packages):

conda create --name r-reticulate -c conda-forge python=3.10 pandas numpy scipy matplotlib scikit-learn

If you want to keep the old conda

Install another environment from base with python 3.9 or older like

conda activate base
conda create --name r-reticulate python=3.9 pandas numpy scipy matplotlib sklearn
conda activate r-reticulate

Other symptoms

You basically cannot install anything after creating and activating your python 3.10 environment. You cannot even install conda-build:

conda install conda-build -y
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.

ResolvePackageNotFound:
  - python=3.1

Conda 4.10 contains python 3.9 and conda 4.11 contains python 3.10, so your base environment should be compatible with the python version therein.

duplicate?

If you believe that your question is a duplicate, please check how you can improve it.

This answer is in agreement with meta. I believe this is an example where exactly the same answer should be accepted, but I also customized the answer to the question.

DanielTuzes
  • 2,494
  • 24
  • 40
  • 1
    Please do not tell people with duplicate questions to delete them. Often a question is a duplicate by the nature of the terminology that different users are comfortable with. Having multiple questions that phrase the same question differently is a good thing. The community can then close vote duplicates to consolidate towards a canonical version of a question and possible answers. – merv May 27 '22 at 22:14
  • @merv My answers to duplicated questions were removed because they were duplicates, however, I felt that in this case, duplicate answers are appropriate, or if they are not, then the questions too should be removed. I now customized the answers, so they are not duplicates, and as requested, I modified the instruction to improve the duplicated questions. I welcome any further suggestion on improving my answers, thanks :) – DanielTuzes Jun 03 '22 at 10:23
0

This works for me

library(reticulate)
x = import('pandas')
x$read_excel()

You can install the package in this way

py_install("pandas")
Earl Mascetti
  • 1,278
  • 3
  • 16
  • 31