Ask Your Question
0

notebook and init.sage

asked 2013-10-14 22:05:37 +0200

anonymous user

Anonymous

I recently upgraded from 5.9 to 5.12.

My init.sage file loads/attaches a .sage file that I often use. In 5.9, that file was still attached when I started up a worksheet in the notebook. In 5.12, it is attached in the terminal, but when I then start open a worksheet in the notebook, it seems to be no longer attached since none of my functions are known any more and give a NameError when tried.

What can I do to fix this?

edit retag flag offensive close merge delete

Comments

What is the exact syntax you used? This has recently changed (though I thought it was before 5.9) and conceivably affected things.

kcrisman gravatar imagekcrisman ( 2013-10-14 22:53:47 +0200 )edit

It looks to me as though this broke between Sage 5.10 (where it works) and 5.11 (where it doesn't). I think the problem was introduced in http://trac.sagemath.org/ticket/14523.

John Palmieri gravatar imageJohn Palmieri ( 2013-10-19 19:27:14 +0200 )edit
1

This bug has now been reported at http://trac.sagemath.org/ticket/15308.

John Palmieri gravatar imageJohn Palmieri ( 2013-10-19 19:29:41 +0200 )edit

I have a problem that may be related. I use load_attach_path followed by attach. I get the error "NameError: name 'var' is not defined" from within the attached file. I am using Ubuntu 12.04 x64 and using the Sage notebook. This worked in 5.10 and stopped working in 5.11.

BobB gravatar imageBobB ( 2013-10-20 00:12:16 +0200 )edit

I've also reported this upstream at https://github.com/sagemath/sagenb/issues/251

kcrisman gravatar imagekcrisman ( 2014-10-24 15:03:19 +0200 )edit

There is a pull request to fix this (though not to fix attach) at https://github.com/sagemath/sagenb/pu...

kcrisman gravatar imagekcrisman ( 2014-12-03 20:32:16 +0200 )edit

Also, @BobB, it would be really interesting to hear how you are able to use attach properly in the notebook if you use load_attach_path. Maybe that is how attach got broken in the first place in the notebook, improper use of a path. (There are really two "attach" lists there - the one for Sage and the one for the data directory, unfortunately.)

kcrisman gravatar imagekcrisman ( 2014-12-03 20:33:15 +0200 )edit

As far as "properly" is concerned, I'm not sure I ever did use it properly. I just wanted to reuse sage code and the load_attach_path/attach seemed to work just fine. I never tried or used the capability of sage to keep track of changes to attached files and re-execute, as it seems it should be able to do. Using load_attach_path/load works (tried at your suggestion, thank you) so I'm fine. I was using attach in the first place because I did not know better.

BobB gravatar imageBobB ( 2014-12-07 09:28:26 +0200 )edit

@BobB : what I meant is that knowing the exact sequence of commands you used could be vital to fixing the problem! If this other solution does allow you to attach a file, probably examining the difference in code will allow us to diagnose (and fix) the other problem. Thank you very much if you have it! If I am misinterpreting and now attachcontinues to not work then this is just another manifestation of https://github.com/sagemath/sagenb/is... . Thanks!

kcrisman gravatar imagekcrisman ( 2014-12-08 15:36:58 +0200 )edit

@BobB - is the reason you used load_attach_pathbecause of https://github.com/sagemath/sagenb/is... ? Thanks!

kcrisman gravatar imagekcrisman ( 2014-12-08 20:44:37 +0200 )edit

I'm really sorry about the large delays in my replies. First, I used load_attach_path because I thought it was necessary for attach to know where to find files. I did not start using it because of the cited issue. So, I have a cell and it contains:

load_attach_path('/home/sage/Documents/SageProjects/OrthogonalCoordinates') attach('CartesianCoord.sage')

CartesianCoord.sage is in the directory named in the load_attach_path, and it contains:

var('q_1,q_2,q_3,x_1,x_2,x_3')

and evaluation results in an error message I will post in another comment, because there isn't enough space left in this comment.

BobB gravatar imageBobB ( 2014-12-30 08:29:55 +0200 )edit

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_5.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -- coding: utf-8 --\n" + _support_.preparse_worksheet_cell(base64.b64decode("bG9hZF9hdHRhY2hfcGF0aCgnL2hvbWUvc2FnZS9Eb2N1bWVudHMvU2FnZVByb2plY3RzL09ydGhvZ29uYWxDb29yZGluYXRlcycpCmF0dGFjaCgnQ2FydGVzaWFuQ29vcmQuc2FnZScp"),globals())+"\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module>

File "/tmp/tmpNZTIvb/___code___.py", line 3, in <module> exec compile(u"attach('CartesianCoord.sage')" + '\n', '', 'single') File "", line 1, in <module>

File "sage/misc/lazy_import.pyx", line 358, in sage.misc.lazy_import.LazyImport.__call__ (build/cythonized/sage/misc/lazy_import.c:3230) File "/home/sage/sage-6.4.1/local/lib/python2.7/site-packages/sage/misc/attached_files.py", line 344, in attach load(filename, globals(), attach=True) File "/home/sage/sage-6.4.1/local/lib/python2.7/site-packages/sage/misc/preparser.py", line 1792, in load exec(code, globals) File "/home/sage/.sage/temp/ubuntu/3303/CartesianCoord.sageaIwXL1.py", line 5, in <module> var ...(more)

BobB gravatar imageBobB ( 2014-12-30 08:30:27 +0200 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2013-10-19 15:31:13 +0200

AndreWin gravatar image

Hello! The problem is in file

$SAGE_ROOT/spkg/bin/sage-env

There is line SAGE_STATUP_FILE = "$DOT_SAGE/init.sage"
I replaced this line to:
SAGE_STATUP_FILE = "home/andrei/.sage/init.sage"
I found the bug in such way:

>>import os
>>os.environ['SAGE_STARTUP_FILE']
/home/andrei/.sage//init.sage
edit flag offensive delete link more

Comments

First, what OS are you using? Second, what is the bug here? (Having multiple slashes in a row doesn't actually affect the path: `/home/andrei/.sage/init.sage` and `/home/andrei/.sage//init.sage` point to the same file.) Third, making your change doesn't seem to have any effect: the file will still be loaded from the command-line, and not from the notebook.

John Palmieri gravatar imageJohn Palmieri ( 2013-10-19 19:04:31 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2013-10-14 22:05:37 +0200

Seen: 565 times

Last updated: Oct 19 '13