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.

Reply via email to