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. 

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.

Reply via email to