I can see that you have successfully linked against sage.
I also have a Qt GUI application which needs to do some mathematics in the
background.
This application is targeted for windows platforms. I have installed sage
from this link
<https://github.com/sagemath/sage-windows/releases/download/0.3/SageMath-8.1.exe>
.
Could you please guide me on how to link my app with sage?
I'm running your code as below
#include <Python.h>
int main(int argc, char *argv[])
{
int retVal = 0;
Py_Initialize();
PySys_SetArgv(argc, (wchar_t**) argv);
printf("1+1:\n");
PyRun_SimpleString("print (1+1)");
printf("Load sage \n");
retVal = PyRun_SimpleString("from sage.all import *");
printf("Factor 2310:\n");
PyRun_SimpleString("print factor(2310)");
Py_Finalize();
return 0;
}
And this gives me the following output:
1+1:
2
Load sage
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'sage'
Factor 2310:
File "<string>", line 1
print factor(2310)
^
SyntaxError: invalid syntax
Press <RETURN> to close this window...
The output is clearly stating that sage cannot be found.
This is because I have linked to my locally compiled python static
libraries(Actually I have downloaded python source code and linked against
it.) which are not aware of sage.
Also I tried to link against python provided in sage installation but I
can't find any "python.lib" in it.
I have also set an environment variable $SAGE_LOCAL pointing to "C:\Program
Files\SageMath 8.1\runtime\opt\sagemath-8.1\local" but no luck.
Environment:
Qt_v5.9
Windows 7
Python_v3.6.4
Sage_v8.1
On Wednesday, September 14, 2011 at 4:15:58 AM UTC+4:30, Michael Rubinstein
wrote:
>
> Thanks! That worked for me too, though I'm not sure how you decided on
> the specific
> choices of libraries to link to.
>
> Mike
>
> On Sep 13, 6:39 pm, Willem Jan Palenstijn <[email protected]> wrote:
> > On Tue, Sep 13, 2011 at 08:46:05AM -0700, Michael Rubinstein wrote:
> >
> > > I tried adding PySys_SetArgv(argc, argv); after Py_Initialize();
> > > It gets me further but then gives a strange error message:
> >
> > > Loading the Sage library...
> >
> > > ------------------------------------------------------------
> > > Unhandled SIGSEGV: A segmentation fault occurred in Sage.
> > > This probably occurred because a *compiled* component
> > > of Sage has a bug in it (typically accessing invalid memory)
> > > or is not properly wrapped with _sig_on, _sig_off.
> > > You might want to run Sage under gdb with 'sage -gdb' to debug this.
> > > Sage will now terminate (sorry).
> > > ------------------------------------------------------------
> >
> > I've just tried it here with your embed.c + PySys_SetArgv(argc, argv),
> and it
> > works for me when I link against libpython2.6 dynamically:
> >
> > $ gcc -I$SAGE_LOCAL/include/python2.6 embed.c -lpython2.6 -lm -lutil
> -lpthread -ldl -o embed
> > $ ./embed
> > 1+1:
> > 2
> > Load sage
> > Factor 2310:
> > 2 * 3 * 5 * 7 * 11
> > $
> >
> > This is 64 bit linux with sage 4.7.1rc1.
> >
> > -Willem Jan
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.