Oct2PyError возникает в ipython при использовании octavemagic

Я хочу использовать октавную функциональность от ipython. Поэтому я установил модуль oct2py по команде pip. (Если быть точным, я использую команды ipython3 и pip3)

Сама установка прошла успешно. Согласно этой веб-странице, я попробовал следующие команды в режиме терминала ipython.

In [1]: %load_ext octavemagic 

-> % октава становится доступной, по-видимому.

In [2]: x = %octave [1 2; 3 4];x

-> ipython сказал следующее сообщение об ошибке.

Как я могу использовать octavemagic без Oct2PyError? Любая помощь будет оценена. Заранее спасибо.

------------------------------------------------------------------    ---------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-d604e29afc22> in <module>()
----> 1 x = get_ipython().magic('octave [1 2; 3 4];')

/usr/local/lib/python3.4/dist-packages/IPython/core/interactiveshell.py in magic(self, arg_s)
   2203         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2204         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2205         return self.run_line_magic(magic_name, magic_arg_s)
   2206 
   2207     #-------------------------------------------------------------------------

/usr/local/lib/python3.4/dist-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line)
   2124                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2125             with self.builtin_trap:
-> 2126                 result = fn(*args,**kwargs)
   2127             return result
   2128 

/usr/local/lib/python3.4/dist-packages/IPython/extensions/octavemagic.py in octave(self, line, cell, local_ns)

/usr/local/lib/python3.4/dist-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):

/usr/local/lib/python3.4/dist-packages/IPython/extensions/octavemagic.py in octave(self, line, cell, local_ns)
    326             text_output = self._oct.run(code, verbose=False)
    327         except (oct2py.Oct2PyError) as exception:
--> 328             msg = exception.message
    329             msg = msg.split('# ___<end_pre_call>___ #')[1]
    330             msg = msg.split('# ___<start_post_call>___ #')[0]

AttributeError: 'Oct2PyError' object has no attribute 'message'

Версия среды и программного обеспечения

  • ОС: Ubuntu 14.04LTS (64 бит)

  • питон: 3.4.0

  • ipython: 2.3.0

  • oct2py: 2.4.0

  • numpy: 1.9.0

  • октава: 3.8.1

1 ответ

Решение

Я нахожу решение с этой страницы. Извините, что не знал об этом.

Следующая команда работает отлично.

In [1]: %load_ext oct2py.ipython

In [2]: x = %octave [1 2; 3 4];
Другие вопросы по тегам