2016-01-21 102 views
2

我在iPython筆記本中運行rpy2時遇到問題。 如果我在IPython中加載%load_ext rpy2.ipython在iPython中工作,但不在iPython Notebook中

%load_ext rpy2.ipython 

4.0.3一切都很好。但是,如果我做同樣的事情在IPython的筆記本,我得到:

--------------------------------------------------------------------------- 
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 

有沒有辦法讓兩者都運行?由於rpy2在iPython中正常運行,我猜那裏安裝shoiuld是正確的。 謝謝, 馬福

+0

'get_ipython()。magic('load_ext rpy2.iPython')' - >你在這裏正確拼寫ipython嗎?好像你使用了'%load_ext rpy2.iPython'而不是'%load_ext rpy2.ipython'。 – cel

+0

你是對的,現在我拼寫正確,但問題仍然會發生wiuth一個稍微不同的錯誤通知。我用新的錯誤信息編輯了原始問題 – MarvL

回答

0

有可能從該IPython中被稱爲環境和從該筆記本被稱爲一個之間多個差異:Der angegebene Pfadname ist ungültig,而試圖將R共享庫中發生錯誤。

您需要告訴我們一些關於如何啓動ipython或筆記本的信息。

話雖如此,你還應該注意,rpy2可能在Linux或OS X上更好地工作。如果ipython筆記本是你的主要興趣,通過Docker容器運行可能是一個很好的解決方案。