As I had a few time to run SageMath, I decided to use Linux instead of
Windows to solve that problem soon.
I give my special thank to all specialists who tried to solve my problem.



On Fri, Mar 8, 2019 at 11:03 PM John Cremona <john.crem...@gmail.com> wrote:

> Perhaps an easier way to debug this is to use the fact that the global
> maple object is defined in the Sage library by the assignment maple=Maple()
> (in sage/interfaces/maple.py) and if at the top of your Sage session you do
> maple = Maple(logfile="maple.log")
> then you can take a look in that file to see all the communication between
> Sage via pexpect and maple.
>
> John
>
> On Wed, 6 Mar 2019 at 16:42, E. Madison Bray <erik.m.b...@gmail.com>
> wrote:
>
>>
>>
>> On Wednesday, March 6, 2019 at 5:31:19 PM UTC+1, E. Madison Bray wrote:
>>>
>>> On Tuesday, March 5, 2019 at 4:47:39 PM UTC+1, benyamin alizade wrote:
>>>>
>>>> It gives no result, and when I interrupt it, the following error
>>>> appears:
>>>>
>>>>
>>>> ---------------------------------------------------------------------------
>>>> EOF                                       Traceback (most recent call
>>>> last)
>>>> <ipython-input-2-8f0455f97669> in <module>()
>>>> ----> 1 maple('2*3')
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
>>>> in __call__(self, x, name)
>>>>     278
>>>>     279         if isinstance(x, string_types):
>>>> --> 280             return cls(self, x, name=name)
>>>>     281         try:
>>>>     282             return self._coerce_from_special_method(x)
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc
>>>> in __init__(self, parent, value, is_name, name)
>>>>    1436         else:
>>>>    1437             try:
>>>> -> 1438                 self._name = parent._create(value, name=name)
>>>>    1439             # Convert ValueError and RuntimeError to TypeError
>>>> for
>>>>    1440             # coercion to work properly.
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
>>>> in _create(self, value, name)
>>>>     474     def _create(self, value, name=None):
>>>>     475         name = self._next_var_name() if name is None else name
>>>> --> 476         self.set(name, value)
>>>>     477         return name
>>>>     478
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/maple.pyc
>>>> in set(self, var, value)
>>>>     622         """
>>>>     623         cmd = '%s:=%s:' % (var, value)
>>>> --> 624         out = self.eval(cmd)
>>>>     625         if out.find("error") != -1:
>>>>     626             raise TypeError("Error executing code in
>>>> Maple\nCODE:\n\t%s\nMaple ERROR:\n\t%s" % (cmd, out))
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc
>>>> in eval(self, code, strip, synchronize, locals, allow_use_file,
>>>> split_lines, **kwds)
>>>>    1350                 elif split_lines:
>>>>    1351                     return '\n'.join([self._eval_line(L,
>>>> allow_use_file=allow_use_file, **kwds)
>>>> -> 1352                                         for L in
>>>> code.split('\n') if L != ''])
>>>>    1353                 else:
>>>>    1354                     return self._eval_line(code,
>>>> allow_use_file=allow_use_file, **kwds)
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/maple.pyc
>>>> in _eval_line(self, line, allow_use_file, wait_for_prompt,
>>>> restart_if_needed)
>>>>     574         with gc_disabled():
>>>>     575             z = Expect._eval_line(self, line,
>>>> allow_use_file=allow_use_file,
>>>> --> 576
>>>>  wait_for_prompt=wait_for_prompt).replace('\\\n','').strip()
>>>>     577             if z.lower().find("error") != -1:
>>>>     578                 raise RuntimeError("An error occurred running a
>>>> Maple command:\nINPUT:\n%s\nOUTPUT:\n%s" % (line, z))
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc
>>>> in _eval_line(self, line, allow_use_file, wait_for_prompt,
>>>> restart_if_needed)
>>>>     982                     out = ''
>>>>     983         except KeyboardInterrupt:
>>>> --> 984             self._keyboard_interrupt()
>>>>     985             raise KeyboardInterrupt("Ctrl-c pressed while
>>>> running %s"%self)
>>>>     986         if self._terminal_echo:
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/sage/interfaces/maple.pyc
>>>> in _keyboard_interrupt(self)
>>>>     333         print("Interrupting %s..." % self)
>>>>     334         self._expect.sendline(chr(3))  # send ctrl-c
>>>> --> 335         self._expect.expect(self._prompt)
>>>>     336         raise RuntimeError("Ctrl-c pressed while running %s" %
>>>> self)
>>>>     337
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/pexpect/spawnbase.pyc
>>>> in expect(self, pattern, timeout, searchwindowsize, async_, **kw)
>>>>     339         compiled_pattern_list =
>>>> self.compile_pattern_list(pattern)
>>>>     340         return self.expect_list(compiled_pattern_list,
>>>> --> 341                 timeout, searchwindowsize, async_)
>>>>     342
>>>>     343     def expect_list(self, pattern_list, timeout=-1,
>>>> searchwindowsize=-1,
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/pexpect/spawnbase.pyc
>>>> in expect_list(self, pattern_list, timeout, searchwindowsize, async_, **kw)
>>>>     367             return expect_async(exp, timeout)
>>>>     368         else:
>>>> --> 369             return exp.expect_loop(timeout)
>>>>     370
>>>>     371     def expect_exact(self, pattern_list, timeout=-1,
>>>> searchwindowsize=-1,
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/pexpect/expect.pyc
>>>> in expect_loop(self, timeout)
>>>>     115                     timeout = end_time - time.time()
>>>>     116         except EOF as e:
>>>> --> 117             return self.eof(e)
>>>>     118         except TIMEOUT as e:
>>>>     119             return self.timeout(e)
>>>>
>>>> /opt/sagemath-8.5/local/lib/python2.7/site-packages/pexpect/expect.pyc
>>>> in eof(self, err)
>>>>      61             if err is not None:
>>>>      62                 msg = str(err) + '\n' + msg
>>>> ---> 63             raise EOF(msg)
>>>>      64
>>>>      65     def timeout(self, err=None):
>>>>
>>>> EOF: End Of File (EOF). Exception style platform.
>>>> Maple with PID 5472 running /cygdrive/c/Program Files (x86)/Maple
>>>> 17/bin.win/maple -t -c interface(screenwidth=infinity,errorcursor=false)
>>>> command: /cygdrive/c/Program Files (x86)/Maple 17/bin.win/maple
>>>> args: ['/cygdrive/c/Program Files (x86)/Maple 17/bin.win/maple', '-t',
>>>> '-c', 'interface(screenwidth=infinity,errorcursor=false)']
>>>> buffer (last 100 chars): ''
>>>> before (last 100 chars): '\r\n'
>>>> after: <class 'pexpect.exceptions.EOF'>
>>>> match: None
>>>> match_index: None
>>>> exitstatus: None
>>>> flag_eof: True
>>>> pid: 5472
>>>> child_fd: 10
>>>> closed: False
>>>> timeout: None
>>>> delimiter: <class 'pexpect.exceptions.EOF'>
>>>> logfile: None
>>>> logfile_read: None
>>>> logfile_send: None
>>>> maxread: 4194304
>>>> ignorecase: False
>>>> searchwindowsize: None
>>>> delaybeforesend: None
>>>> delayafterclose: 0.1
>>>> delayafterterminate: 0.1
>>>> searcher: searcher_re:
>>>>     0: re.compile('#-->')
>>>>
>>>>>
>>>>>
>>> It looks to me like pexpect is just waiting forever for a prompt and not
>>> receiving one.  The best thing to do I think would be to run it more
>>> directly and see what it's outputting.  Perhaps even it's something as
>>> simple as, the prompt is something other than "#-->".  So pexpect will just
>>> sit there until something resembling the "#-->" appears on its stdin
>>> stream.
>>>
>>
>> I almost forgot the most important point!  If you want to interact "more
>> directly" what I wrote above, you can use the `ptyprocess` module directly,
>> which is what pexpect (and by extension Sage's interface to maple) is
>> using.  For example to start process with a PTY from Python/sage:
>>
>>     sage: import ptyprocess
>>     sage: p = ptyprocess.PtyProcess.spawn(['/cygdrive/c/Program Files
>> (x86)/Maple 17/bin.win/maple', '-t', '-c',
>> 'interface(screenwidth=infinity,errorcursor=false)'])
>>
>>
>> then to see the process's output:
>>
>>     sage: p.read()
>>     <something>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sage-support" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to sage-support+unsubscr...@googlegroups.com.
>> To post to this group, send email to sage-support@googlegroups.com.
>> Visit this group at https://groups.google.com/group/sage-support.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-support@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to