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.

Reply via email to