On Friday, December 9, 2016 at 10:13:03 PM UTC, Bill Hart wrote: > > Ah I see. I assumed it would also try to spawn a browser or something. >
the default ( notebook()) is indeed to try to open a browser/browser tab to show the URL served by the server, whereas notebook(automatic_login=False) will just run the server, and let the user to do the rest (connect to the URL using a browser). > > On the other hand, I understand some of the networking stuff is still not > completed. You can of course use wget and the like so it can't be too > broken. > > Bill. > > On Friday, 9 December 2016 15:15:43 UTC+1, Dima Pasechnik wrote: >> >> >> >> On Friday, December 9, 2016 at 12:48:30 PM UTC, Bill Hart wrote: >>> >>> The Sage Notebook isn't likely to work under the WSL. It's a text >>> console environment only. Microsoft intended it mainly to provide Linux >>> development tools to people, not as a way of running graphical >>> applications. >>> >> >> Hmm, no, all what gets to run here is a web server (on a local port) >> talking to a Sage backend. Graphics happens in a web browser, so it should >> not be a problem of being "text console only". >> >> >>> >>> You can probably fix the memory allocation issues though. You likely >>> need to increase the Pagefile system size. Windows allocates a ridiculously >>> small amount of memory for this. >>> >>> There's a walkthrough here: >>> >>> http://www.softwareok.com/?seite=faq-Windows-10&faq=52 >>> >>> I use 16GB on my system (of course you need enough disk space). >>> >>> Bill. >>> >>> On Monday, 5 December 2016 11:24:21 UTC+1, GK wrote: >>>> >>>> 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> 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.