2

I have a problem to get rpy2 running in iPython notebook. If I load

%load_ext rpy2.ipython

in iPython 4.0.3 everything is fine. But if I do the same thing in a iPython notebook I get:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-3-a69f80d0128e> in <module>()
----> 1 get_ipython().magic('load_ext rpy2.ipython')

C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in magic(self, arg_s)
   2334         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2335         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2336         return self.run_line_magic(magic_name, magic_arg_s)
   2337 
   2338     #-------------------------------------------------------------------------

C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line)
   2255                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2256             with self.builtin_trap:
-> 2257                 result = fn(*args,**kwargs)
   2258             return result
   2259 

<decorator-gen-65> in load_ext(self, module_str)

C:\Anaconda3\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k)
    191     # but it's overkill for just that one bit of state.
    192     def magic_deco(arg):
--> 193         call = lambda f, *a, **k: f(*a, **k)
    194 
    195         if callable(arg):

C:\Anaconda3\lib\site-packages\IPython\core\magics\extension.py in load_ext(self, module_str)
     64         if not module_str:
     65             raise UsageError('Missing module name.')
---> 66         res = self.shell.extension_manager.load_extension(module_str)
     67 
     68         if res == 'already loaded':

C:\Anaconda3\lib\site-packages\IPython\core\extensions.py in load_extension(self, module_str)
     82             if module_str not in sys.modules:
     83                 with prepended_to_syspath(self.ipython_extension_dir):
---> 84                     __import__(module_str)
     85             mod = sys.modules[module_str]
     86             if self._call_load_ipython_extension(mod):

C:\Anaconda3\lib\site-packages\rpy2\ipython\__init__.py in <module>()
----> 1 from .rmagic import load_ipython_extension

C:\Anaconda3\lib\site-packages\rpy2\ipython\rmagic.py in <module>()
     50 # numpy and rpy2 imports
     51 
---> 52 import rpy2.rinterface as ri
     53 import rpy2.robjects as ro
     54 import rpy2.robjects.packages as rpacks

C:\Anaconda3\lib\site-packages\rpy2\rinterface\__init__.py in <module>()
     72         if not os.path.exists(Rlib):
     73             continue
---> 74         ctypes.CDLL(Rlib)
     75         _win_ok = True
     76         break

C:\Anaconda3\lib\ctypes\__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
    345 
    346         if handle is None:
--> 347             self._handle = _dlopen(self._name, mode)
    348         else:
    349             self._handle = handle

FileNotFoundError: [WinError 161] Der angegebene Pfadname ist ungültig

Is there some way to get both running? As rpy2 runs properly in iPython I guess there the installation shoiuld be correct. Thanks, Marv

MarvL
  • 21
  • 3
  • `get_ipython().magic('load_ext rpy2.iPython')` -> did you spell `ipython` correctly here? It seems like you used `%load_ext rpy2.iPython` instead of `%load_ext rpy2.ipython`. – cel Jan 21 '16 at 09:17
  • you are right, now I spelled it correctly but the problem still occurs wiuth a slightly different error notification. I edited the origibal question with the new error message – MarvL Jan 21 '16 at 09:47

1 Answers1

0

There is likely more differences between the environment from which ipython is called and the one from which the notebook is called: the error Der angegebene Pfadname ist ungültig occurs while trying the R shared library.

You'd need to tell us a little more about how you start either ipython or the notebook.

Having that said, you should also note that rpy2 is likely working better on Linux or OS X. If the ipython notebook is your primary interest, running through a Docker container could be a good solution.

lgautier
  • 11,363
  • 29
  • 42