Hi from me. My (more recent) experience is similar but not identical. I install sage from the ppa and I am having problems. Sage loads and seems to be working, but:
┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 7.3, Release Date: 2016-08-04 │ │ Type "notebook()" for the browser-based notebook interface. │ │ Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: gp.eval('2+2') --------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-1-e5d4083fb83e> in <module>() ----> 1 gp.eval('2+2') /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc in eval(self, code, strip, synchronize, locals, allow_use_file, split_lines, **kwds) 1292 elif split_lines: 1293 return '\n'.join([self._eval_line(L, allow_use_file=allow_use_file, **kwds) -> 1294 for L in code.split('\n') if L != '']) 1295 else: 1296 return self._eval_line(code, allow_use_file=allow_use_file, **kwds) /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/gp.pyc in _eval_line(self, line, allow_use_file, wait_for_prompt, restart_if_needed) 439 a = Expect._eval_line(self, line, 440 allow_use_file=allow_use_file, --> 441 wait_for_prompt=wait_for_prompt) 442 if a.find("the PARI stack overflows") != -1: 443 verbose("automatically doubling the PARI stack and re-executing current input line") /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc in _eval_line(self, line, allow_use_file, wait_for_prompt, restart_if_needed) 903 try: 904 if self._expect is None: --> 905 self._start() 906 E = self._expect 907 try: /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/gp.pyc in _start(self, alt_message, block_during_init) 239 240 def _start(self, alt_message=None, block_during_init=True): --> 241 Expect._start(self, alt_message, block_during_init) 242 # disable timer 243 self._eval_line('default(timer,0);') /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc in _start(self, alt_message, block_during_init) 480 env=pexpect_env, 481 name=self._repr_(), --> 482 quit_string=self._quit_string()) 483 except (ExceptionPexpect, pexpect.EOF) as e: 484 # Change pexpect errors to RuntimeError sage/interfaces/sagespawn.pyx in sage.interfaces.sagespawn.SageSpawn.__init__ (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1446)() sage/interfaces/sagespawn.pyx in sage.interfaces.sagespawn.SageSpawn.__init__ (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1398)() /usr/lib/sagemath/local/lib/python2.7/site-packages/pexpect/pty_spawn.pyc in __init__(self, command, args, timeout, maxread, searchwindowsize, logfile, cwd, env, ignore_sighup, echo, preexec_fn, encoding, codec_errors, dimensions) 196 self.name = '<pexpect factory incomplete>' 197 else: --> 198 self._spawn(command, args, preexec_fn, dimensions) 199 200 def __str__(self): /usr/lib/sagemath/local/lib/python2.7/site-packages/pexpect/pty_spawn.pyc in _spawn(self, command, args, preexec_fn, dimensions) 296 297 self.ptyproc = self._spawnpty(self.args, env=self.env, --> 298 cwd=self.cwd, **kwargs) 299 300 self.pid = self.ptyproc.pid sage/interfaces/sagespawn.pyx in sage.interfaces.sagespawn.SageSpawn._spawnpty (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1631)() /usr/lib/sagemath/local/lib/python2.7/site-packages/ptyprocess/ptyprocess.pyc in spawn(cls, argv, cwd, env, echo, preexec_fn, dimensions) 218 219 if use_native_pty_fork: --> 220 pid, fd = pty.fork() 221 else: 222 # Use internal fork_pty, for Solaris /usr/lib/sagemath/local/lib/python/pty.pyc in fork() 106 107 master_fd, slave_fd = openpty() --> 108 pid = os.fork() 109 if pid == CHILD: 110 # Establish a new session. OSError: [Errno 12] Cannot allocate memory sage: and I cannot load the notebook interface: sage: notebook() --------------------------------------------------------------------------- EnvironmentError Traceback (most recent call last) <ipython-input-2-3728cb3d7c7d> in <module>() ----> 1 notebook() sage/misc/lazy_import.pyx in sage.misc.lazy_import.LazyImport.__call__ (/usr/lib/sagemath//src/build/cythonized/sage/misc/lazy_import.c:3635)() sage/misc/lazy_import.pyx in sage.misc.lazy_import.LazyImport._get_object (/usr/lib/sagemath//src/build/cythonized/sage/misc/lazy_import.c:2242)() /usr/lib/sagemath/local/lib/python2.7/site-packages/sagenb/notebook/notebook_object.py in <module>() 15 import time, os, shutil, signal, tempfile 16 ---> 17 import notebook as _notebook 18 19 import run_notebook /usr/lib/sagemath/local/lib/python2.7/site-packages/sagenb/notebook/notebook.py in <module>() 33 34 # Sage libraries ---> 35 from sagenb.misc.misc import (pad_zeros, cputime, tmp_dir, load, save, 36 ignore_nonexistent_files, unicode_str) 37 /usr/lib/sagemath/local/lib/python2.7/site-packages/sagenb/misc/misc.py in <module>() 379 380 try: --> 381 from sage.misc.cython import cython 382 except ImportError: 383 @stub /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/misc/cython.py in <module>() 28 29 # CBLAS can be one of multiple implementations ---> 30 cblas_pc = pkgconfig.parse('cblas') 31 cblas_libs = list(cblas_pc['libraries']) 32 cblas_library_dirs = list(cblas_pc['library_dirs']) /usr/lib/sagemath/local/lib/python2.7/site-packages/pkgconfig-1.1.0-py2.7.egg/pkgconfig/pkgconfig.py in parse(packages) 185 186 for package in packages.split(): --> 187 for k, v in parse_package(package).items(): 188 result[k].update(v) 189 /usr/lib/sagemath/local/lib/python2.7/site-packages/pkgconfig-1.1.0-py2.7.egg/pkgconfig/pkgconfig.py in parse_package(package) 158 159 # Execute the query to pkg-config and clean the result. --> 160 out = _query(package, '--cflags --libs') 161 out = out.replace('\\"', '') 162 /usr/lib/sagemath/local/lib/python2.7/site-packages/pkgconfig-1.1.0-py2.7.egg/pkgconfig/pkgconfig.py in _wrapper(*args, **kwargs) 56 Enter code here... return func(*args, **kwargs) 57 except OSError: ---> 58 raise EnvironmentError("pkg-config is not installed") 59 60 return _wrapper EnvironmentError: pkg-config is not installed sage: while I do have pkg-config installed. On Wednesday, May 18, 2016 at 5:07:02 PM UTC+3, William wrote: > > > > On Wednesday, May 18, 2016, Brian Beavers <drbeav...@gmail.com > <javascript:>> wrote: > >> Looks like there's more going on than just a lack of pty. Here's the >> result: >> >> > Well that is just another test of pty... > > > >> sage: gp.eval('2+2') >> >> --------------------------------------------------------------------------- >> OSError Traceback (most recent call >> last) >> <ipython-input-1-e5d4083fb83e> in <module>() >> ----> 1 gp.eval('2+2') >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc >> >> in eval(self, code, strip, synchronize, locals, allow_use_file, >> split_lines, **kwds) >> 1237 elif split_lines: >> 1238 return '\n'.join([self._eval_line(L, >> allow_use_file=allow_use_file, **kwds) >> -> 1239 for L in code.split('\n') >> if L != '']) >> 1240 else: >> 1241 return self._eval_line(code, >> allow_use_file=allow_use_file, **kwds) >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/gp.pyc >> in _eval_line(self, line, allow_use_file, wait_for_prompt, >> restart_if_needed) >> 437 a = Expect._eval_line(self, line, >> 438 allow_use_file=allow_use_file, >> --> 439 wait_for_prompt=wait_for_prompt) >> 440 if a.find("the PARI stack overflows") != -1: >> 441 verbose("automatically doubling the PARI stack and >> re-executing current input line") >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc >> >> in _eval_line(self, line, allow_use_file, wait_for_prompt, >> restart_if_needed) >> 848 try: >> 849 if self._expect is None: >> --> 850 self._start() >> 851 E = self._expect >> 852 try: >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/gp.pyc >> in _start(self, alt_message, block_during_init) >> 237 >> 238 def _start(self, alt_message=None, block_during_init=True): >> --> 239 Expect._start(self, alt_message, block_during_init) >> 240 # disable timer >> 241 self._eval_line('default(timer,0);') >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc >> >> in _start(self, alt_message, block_during_init) >> 423 env=pexpect_env, >> 424 name=self._repr_(), >> --> 425 quit_string=self._quit_string()) >> 426 except (ExceptionPexpect, pexpect.EOF) as e: >> 427 # Change pexpect errors to RuntimeError >> >> sage/interfaces/sagespawn.pyx in >> sage.interfaces.sagespawn.SageSpawn.__init__ >> (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1331)() >> >> sage/interfaces/sagespawn.pyx in >> sage.interfaces.sagespawn.SageSpawn.__init__ >> (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1284)() >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/pexpect/pty_spawn.pyc >> in __init__(self, command, args, timeout, maxread, searchwindowsize, >> logfile, cwd, env, ignore_sighup, echo, preexec_fn, encoding, codec_errors, >> dimensions) >> 191 self.name = '<pexpect factory incomplete>' >> 192 else: >> --> 193 self._spawn(command, args, preexec_fn, dimensions) >> 194 >> 195 def __str__(self): >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/pexpect/pty_spawn.pyc >> in _spawn(self, command, args, preexec_fn, dimensions) >> 286 >> 287 self.ptyproc = self._spawnpty(self.args, env=self.env, >> --> 288 cwd=self.cwd, **kwargs) >> 289 >> 290 self.pid = self.ptyproc.pid >> >> sage/interfaces/sagespawn.pyx in >> sage.interfaces.sagespawn.SageSpawn._spawnpty >> (/usr/lib/sagemath//src/build/cythonized/sage/interfaces/sagespawn.c:1520)() >> >> /usr/lib/sagemath/local/lib/python2.7/site-packages/ptyprocess/ptyprocess.pyc >> >> in spawn(cls, argv, cwd, env, echo, preexec_fn, dimensions) >> 218 >> 219 if use_native_pty_fork: >> --> 220 pid, fd = pty.fork() >> 221 else: >> 222 # Use internal fork_pty, for Solaris >> >> /usr/lib/sagemath/local/lib/python/pty.pyc in fork() >> 105 return pid, fd >> 106 >> --> 107 master_fd, slave_fd = openpty() >> 108 pid = os.fork() >> 109 if pid == CHILD: >> >> /usr/lib/sagemath/local/lib/python/pty.pyc in openpty() >> 27 except (AttributeError, OSError): >> 28 pass >> ---> 29 master_fd, slave_name = _open_terminal() >> 30 slave_fd = slave_open(slave_name) >> 31 return master_fd, slave_fd >> >> /usr/lib/sagemath/local/lib/python/pty.pyc in _open_terminal() >> 68 continue >> 69 return (fd, '/dev/tty' + x + y) >> ---> 70 raise os.error, 'out of pty devices' >> 71 >> 72 def slave_open(tty_name): >> >> OSError: out of pty devices >> >> >> Brian Beavers, Ph.D., Associate Professor >> Department of Mathematics & Statistics >> Stephen F. Austin State University >> >> On Wed, May 18, 2016 at 8:50 AM, William Stein <wst...@gmail.com> wrote: >> >>> >>> >>> On Wednesday, May 18, 2016, Brian Beavers <drbeavers...@gmail.com> >>> wrote: >>> >>>> I've discovered why the notebook server (and administrative pages >>>> within) loads but notebooks do not load: WSL does not yet suppot pty. When >>>> I try to create a worksheet, back in the terminal Sage throws an error >>>> that >>>> it is out of pty instances. >>>> >>>> >>> What happens if you do >>> >>> gp.eval('2+2') >>> >>> in the terminal? >>> >>> Also, unlike sagenb, jupyter doesn't use pty's so it won't have this >>> obstruction. >>> >>> >>>> >>>> >>>> Brian Beavers, Ph.D., Associate Professor >>>> Department of Mathematics & Statistics >>>> Stephen F. Austin State University >>>> >>>> On Mon, May 16, 2016 at 2:31 AM, Dima Pasechnik <dimp...@gmail.com> >>>> wrote: >>>> >>>>> one can do graphics in a browser running on the host, so this is not >>>>> really a big limitation. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "sage-devel" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to sage-devel+unsubscr...@googlegroups.com. >>>>> To post to this group, send email to sage-devel@googlegroups.com. >>>>> Visit this group at https://groups.google.com/group/sage-devel. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "sage-devel" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to sage-devel+unsubscr...@googlegroups.com. >>>> To post to this group, send email to sage-devel@googlegroups.com. >>>> Visit this group at https://groups.google.com/group/sage-devel. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> -- >>> Sent from my massive iPhone 6 plus. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "sage-devel" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to sage-devel+unsubscr...@googlegroups.com. >>> To post to this group, send email to sage-devel@googlegroups.com. >>> Visit this group at https://groups.google.com/group/sage-devel. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > > > > >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-devel" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sage-devel+unsubscr...@googlegroups.com. >> To post to this group, send email to sage-devel@googlegroups.com. >> Visit this group at https://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. >> > > > -- > Sent from my massive iPhone 6 plus. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.