Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Importing python module in R

I am trying to import a python module in R using the reticulate package. The module can be found here. I cloned the repository and ran python setup.py install which ran successfully. If I open a python shell, I'm able to import debot. However, when I try to import it in RStudio, I get the following error:

dbot=import("debot")
Error in py_module_import(module, convert = convert) : 
  ImportError: No module named debot

I am on macOS Sierra version 10.12.6 and installed python 3.6 through Anaconda. I have also tried giving the path to python as:

path_to_python <- "/anaconda/bin/python3.6"
use_python(path_to_python)

When I run python from a terminal, I get:

Python 3.6.1 |Anaconda 4.4.0 (x86_64)| (default, May 11 2017, 13:04:09) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Not sure if the path to python is correct.

Ok, did some more digging around and discovered that reticulate still refers to my older python path for python 2.7 which came as default with my Macbook. When I run py_config(), this is what I get:

python:         /usr/bin/python
libpython:      /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib
pythonhome:     /System/Library/Frameworks/Python.framework/Versions/2.7:/System/Library/Frameworks/Python.framework/Versions/2.7
version:        2.7.10 (default, Feb  7 2017, 00:08:15)  [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]

No matter what I try but I can't get reticulate to look at the correct path where the module has been installed using the use_python() function. I do believe this is an issue with reticulate. Any ideas what my next steps should be?

like image 309
Dhiraj Avatar asked Aug 24 '17 11:08

Dhiraj


People also ask

Can you use Python packages in R?

Any Python package you install from PyPI or Conda can be used from R with reticulate. Each version of Python on your system has its own set of packages and reticulate will automatically find a version of Python that contains the first package that you import from R.

How do you integrate Python into R?

package comes with a Python engine you can use in R Markdown. Reticulate allows you to run chunks of Python code, print Python output, access Python objects, and so on. Easy, right? You can import any Python library and write any Python code you want, and then access the variables and functions declared with R.

Can I use RStudio to code Python?

With RStudio products you can combine R and Python seamlessly without extra overhead. You can use the RStudio IDE for R, but also for bilingual tasks. With RStudio Workbench, launch Jupyter Notebooks, JupyterLab, or VS Code for Python.


1 Answers

After reading this I finally figured out. I think before calling any other function from the reticulate package, it is imperative to specify the path to python to use. Hence the order I am following now is:

library(reticulate)
path_to_python <- "/anaconda/bin/python"
use_python(path_to_python)
like image 177
Dhiraj Avatar answered Oct 22 '22 16:10

Dhiraj