Rmagics и Rpy2 не работают Windows 10. Все результаты вычислений go до Windows Консоль, а не выходные ячейки Jupyter. Взлом RWinOut больше не работает.
Как только я использую RWinout, я получаю фатальную ошибку, которая требует от меня перезапустить сервер Jupyter NB, он убивает ядро Jupyter Notebook Python.
Я попытался установить в 3 различных средах conda, используя только conda, Anaconda Navigator или pip. Он всегда возвращается к той же ошибке кода после установки всех пакетов. Есть несколько человек, предлагающих пошаговые инструкции по установке R, затем rpy2, затем специальные пакеты поддержки, затем Jupyter, et c. Это слишком утомительно для обычных исследователей данных и аналитиков.
Rpy2 необходимо переписать для поддержки Windows 10.
Я хочу, чтобы это работало, потому что Python -R NB с Plotly-Da sh, расширения Jupyter NB, такие как Qgrid и другие создают хорошие комбинации для интерактивных приложений для обработки данных без необходимости запуска дополнительных серверов, таких как RShiny или др.
Я могу загрузить rpy2 и использовать его функции и объекты, но не магию ячеек R.
#
Вот моя информация о версии:
Версия R: ('3', '6.0', '', 76424) Версия Rpy2: 2.9.4 Python версия 3.7.4: ядро jupyter: 4.5 .0 jupyter-notebook: 6.0.1 qtconsole: 4.5.5 i python: 7.8.0 ipykernel: 5.1.2 jupyter client: 5.3.3 jupyter lab: 1.1.4 nbconvert: 5.6.0 ipywidgets: 7.5.1 nbformat : 4.4.0 traitlets: 4.3.3 7.8.0 Все было установлено в этой среде с помощью Anaconda Navigator или conda из командной консоли, если только установка pip не требовалась для чего-то, у кого не было пакета conda.
Конда является наиболее предпочтительным пакетом м жаждут чего-либо связанного с экосистемой Jupyter, потому что она спроектирована так, чтобы быть зависимой от языка c.
#
Встроенные магические R-сигналы производят выход в выходную ячейку Jupyter, но магические R-клетки выводят результаты на консоль Windows, которую я использовал для запуска ноутбука Jupyter.
Как только я запускаю RWinOut, появляются ошибки ниже и ядро умирает.
Я также получаю следующие сообщения в консоли Windows:
Loading required package: R.oo
Loading required package: R.methodsS3
R.methodsS3 v1.8.0 (2020-02-14 07:10:20 UTC) successfully loaded. See ?R.methodsS3 for help.
R.oo v1.23.0 successfully loaded. See ?R.oo for help.
Attaching package: 'R.oo'
The following object is masked from 'package:R.methodsS3':
throw
The following objects are masked from 'package:methods':
getClasses, getMethods
The following objects are masked from 'package:base':
attach, detach, load, save
R.utils v2.9.2 successfully loaded. See ?R.utils for help.
Attaching package: 'R.utils'
The following object is masked from 'package:utils':
timestamp
The following objects are masked from 'package:base':
cat, commandArgs, getOption, inherits, isOpen, nullfile, parse,
warnings
Странно то, что магия inline R работает нормально, но НЕ магию Cell.
Когда я запускаю RWinOut следующим образом:
!curl -O "https://raw.githubusercontent.com/vitorcurtis/RWinOut/master/RWinOut.py"
%reload_ext RWinOut
Я получаю длинную строку ошибок (ниже). Это также убивает ядро Python для Jupyter NB.
Расширение rpy2.i python уже загружено. Чтобы перезагрузить его, используйте:% reload_ext rpy2.i python
ValueError Traceback (most recent call last)
<ipython-input-25-49c9701f263c> in <module>
----> 1 get_ipython().run_line_magic('reload_ext', 'RWinOut')
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
2312 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2313 with self.builtin_trap:
-> 2314 result = fn(*args, **kwargs)
2315 return result
2316
<C:\ProgramData\Anaconda3\lib\site-packages\decorator.py:decorator-gen-67> in reload_ext(self, module_str)
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\magics\extension.py in reload_ext(self, module_str)
61 if not module_str:
62 raise UsageError('Missing module name.')
---> 63 self.shell.extension_manager.reload_extension(module_str)
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\extensions.py in reload_extension(self, module_str)
128 self.loaded.add(module_str)
129 else:
--> 130 self.load_extension(module_str)
131
132 def _call_load_ipython_extension(self, mod):
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\extensions.py in load_extension(self, module_str)
85 dir=compress_user(self.ipython_extension_dir)))
86 mod = sys.modules[module_str]
---> 87 if self._call_load_ipython_extension(mod):
88 self.loaded.add(module_str)
89 else:
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\extensions.py in _call_load_ipython_extension(self, mod)
132 def _call_load_ipython_extension(self, mod):
133 if hasattr(mod, 'load_ipython_extension'):
--> 134 mod.load_ipython_extension(self.shell)
135 return True
136
c:\Users\rlysakow\Desktop\00-PayEquity-WIP\RWinOut.py in load_ipython_extension(ip)
39 # loading magic and libraries
40 ip.run_line_magic('load_ext', 'rpy2.ipython')
---> 41 ip.run_line_magic('R', 'library(R.utils)')
42 ip.run_line_magic('config', 'Application.verbose_crash=True')
43
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
2312 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2313 with self.builtin_trap:
-> 2314 result = fn(*args, **kwargs)
2315 return result
2316
<C:\ProgramData\Anaconda3\lib\site-packages\decorator.py:decorator-gen-133> in R(self, line, cell, local_ns)
C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
C:\ProgramData\Anaconda3\lib\site-packages\rpy2\ipython\rmagic.py in R(self, line, cell, local_ns)
755 if result is not ri.NULL:
756 with localconverter(converter) as cv:
--> 757 res = cv.ri2py(result)
758 return res
759
C:\ProgramData\Anaconda3\lib\functools.py in wrapper(*args, **kw)
838 '1 positional argument')
839
--> 840 return dispatch(args[0].__class__)(*args, **kw)
841
842 funcname = getattr(func, '__name__', 'singledispatch function')
C:\ProgramData\Anaconda3\lib\site-packages\rpy2\robjects\pandas2ri.py in ri2py_vector(obj)
137 @ri2py.register(SexpVector)
138 def ri2py_vector(obj):
--> 139 res = numpy2ri.ri2py(obj)
140 return res
141
C:\ProgramData\Anaconda3\lib\functools.py in wrapper(*args, **kw)
838 '1 positional argument')
839
--> 840 return dispatch(args[0].__class__)(*args, **kw)
841
842 funcname = getattr(func, '__name__', 'singledispatch function')
C:\ProgramData\Anaconda3\lib\site-packages\rpy2\robjects\numpy2ri.py in ri2py_sexp(obj)
157 def ri2py_sexp(obj):
158 if (obj.typeof in _vectortypes) and (obj.typeof != VECSXP):
--> 159 res = numpy.asarray(obj)
160 else:
161 res = ro.default_converter.ri2py(obj)
C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\numeric.py in asarray(a, dtype, order)
536
537 """
--> 538 return array(a, dtype, copy=False, order=order)
539
540
ValueError: Buffer for this type not yet supported.
Я не смог найти никаких хаков или процедур для устранения этой последней ошибки.
У меня сейчас нет времени или навыков взломать расширения i python, чтобы заставить работать rpy2.
У кого-нибудь был подобный опыт с rpy2? Как вы решили проблемы?