moteur d aide

Utilisation de Xcas

Modérateur : xcasadmin

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » mar. juin 11, 2013 2:49 pm

Bon, maintenant que ça marche sous linux, il faudrait arriver à le faire marcher sous windows et mac. Sous windows j'arrive à compiler, mais ensuite quand je lance python sous cygwin et from giacpy import * il me dit fichier introuvable (même après avoir recopié giacpy.dll dans un répertoire du path, il faudra que j'essaie demain des fois que ça soit giac.dll le fichier introuvable, sinon j'essaierai avec mingw).
Sous mac, ça compile et fonctionne en 32 bits, donc ça nécessite un peu de gymnastique. Peut-être que le mieux serait d'avoir la libgiac en 64 bits installée dans /Applications/usr/lib dans le package xcas (avec xcas toujours en 32 bits, en 64 bits les graphes 3-d déconnent encore plus qu'en 32 bits) et un lien vers /usr/local/lib.
Ce serait pas mal aussi d'avoir une sortie graphique, si ça ne marche pas avec qt, on devrait pouvoir faire fonctionner avec fltk comme dans icas?
Je me demande si ce module une fois fonctionnel sous win et mac ne pourrait pas intéresser les maths sups qui choisiront python l'an prochain (on n'a pas pu entrer par la porte principale, essayons la porte de derrière:-))

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » mer. juin 12, 2013 9:14 am

Je viens de mettre le plugin pour python 2.6 dans l'image mac (xcas_osx6_unstable), cree pour Intel 64 bits. Quelqu'un pourrait tester?
Je suppose qu'il faudra aussi ajouter les versions 2.7 et 3.3...

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: moteur d aide

Message par frederic han » mer. juin 12, 2013 11:50 am

En fait il n'a pas l'air de trouver la libpari:

/usr/64/local/lib/libpari.dylib

image not found

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » mer. juin 12, 2013 12:08 pm

Ca doit etre le cas de toutes les lib dynamiques auquel giac est linke alors. Il y en a sans doute un paquet malheureusement... Mais quand j'ai essaye de linker avec libgiac.a il ralait au chargement de giacpy.
Bon, ca n'a pas l'air trop gros, je rajoute les lib dynamiques dans l'image disque mac, ensuite tu n'auras qu'a faire
sudo ln -s /Applications/usr/64 /usr/64
et regarder ce qu'on peut virer.

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: moteur d aide

Message par frederic han » mer. juin 12, 2013 1:08 pm

Avec le lien 64 ca marche.
(J'ai python 2.7, il rale donc pour la forme mais passe les doctests.)

si je suis dans le rep de giacpy.so
python -m doctest -v giacpy.pyx
passe bien les 68 exemples.

D'autre part depuis n'importe ou, j'ai teste comme cela, il faudrait peut etre mettre des exemples quelque part:

dans python:

Code : Tout sélectionner

import sys
sys.path.insert(0,"/Applications/usr/share/python26")
help('giacpy')
from giacpy import *
x,y,z=giac('x,y,z')
assume('x>-5 && x<2*pi')
print solve('cos(x)>1/2',x)
f=(x+y+z)**4
print f.normal()
help(giac)

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » mer. juin 12, 2013 3:12 pm

c'est un peu lourd quand meme s'il faut le faire a chaque fois, y-a-t-il un moyen d'automatiser tout ca dans une sorte de .bashrc mais pour python?

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: moteur d aide

Message par frederic han » mer. juin 12, 2013 5:26 pm

Si tu preferes tu peux faire:

export PYTHONPATH="/Applications/usr/share/python26"

pour eviter de faire le lien symbolique /usr/64 j'ai fait ceci comme root pour changer la libgiac:

Code : Tout sélectionner

install_name_tool -change "/usr/64/local/lib/libpari.dylib" "/Applications/usr/64/local/lib/libpari.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libgsl.0.dylib" "/Applications/usr/64/local/lib/libgsl.0.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libgslcblas.0.dylib" "/Applications/usr/64/local/lib/libgslcblas.0.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libintl.8.dylib" "/Applications/usr/64/local/lib/libintl.8.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libmpfr.4.dylib" "/Applications/usr/64/local/lib/libmpfr.4.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libgmp.10.dylib" "/Applications/usr/64/local/lib/libgmp.10.dylib" libgiac.0.dylib 
install_name_tool -change "/usr/64/local/lib/libgmp.10.dylib" "/Applications/usr/64/local/lib/libgmp.10.dylib"  /Applications/usr/64/local/lib/libmpfr.4.dylib
si tu distribues aussi ces librairies peut etre vaut mieux t'il preconfigurer le bon chemin plutot que de demander un lien?
a+
Fred

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » mer. juin 12, 2013 6:30 pm

excellent, je vais faire ça demain. Ensuite makelinks fait déjà un lien de la libgiac vers /usr/local/lib et de giacpy vers le répertoire python de site, donc tout devrait fonctionner.
Espérons que demain sera le tour de windows de capituler!

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » jeu. juin 13, 2013 12:00 pm

Bon, j'ai trouve, il faut nommer le fichier avec l'extension pyd au lieu de dll.
Et ca marche!!! Voila la version win32 pour python 2.7
http://www-fourier.ujf-grenoble.fr/~par ... 7win32.zip
a dezipper dans Python27\Lib\site-package
et pour python 3.3
http://www-fourier.ujf-grenoble.fr/~par ... 3win32.zip
a dezipper dans Python33\Lib\site-package
Je vais mettre a jour mingiac.tgz et mingiac32.tgz en y ajoutant ce qu'il faut pour le support python. Je dois modifier le nom de fichier du misc.h de giacpy pour eviter les conflits avec celui de giac, je propose de le nommer giacpymisc.h.

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » jeu. juin 13, 2013 12:25 pm

Pour generer les versions windows 64 bits du module de giac, il me faudrait le fichier libpython27.a et libpython33.a qui se trouvent (si c'est comme en 32 bits) dans c:\Python27\libs ou c:\Python33\libs.

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » jeu. juin 13, 2013 12:37 pm

Il y a un conflit avec maxint dans la version windows pour python 3.3 qui empeche le chargement du module, peut-etre avec d'autres...

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: moteur d aide

Message par frederic han » jeu. juin 13, 2013 7:12 pm

oui pour maxint c'est normal que ca ne marche pas en python3 car il n'y a plus qu'un seul type d'entiers. J'ai arrange cela mais je n'ai pas teste, il se peut fort bien que tu doives recreer le fichier giacpy.cpp avec un cython compile avec python3 ce que je n'ai pas.

J'ai mis l'archive 0.2.4 a jour j'ai change le maxint en maxsize.

http://www.math.jussieu.fr/~han/xcas/gi ... 2.4.tar.gz

(pour recreer le .cpp tu peux regarder le setup.py)
a+
Fred

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » ven. juin 14, 2013 7:44 am

j'ai maintenant un probleme lors de la creation de GIACNULL, je vais installer cython et essayer de faire des modifs dans le pyx...

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: moteur d aide

Message par parisse » ven. juin 14, 2013 8:16 am

Bon, j'ai essaye de remplacer PyGen('NULL') par PyGen('seq[]') au cas ou NULL poserait probleme, mais c'est pas ca non plus, je pense que tu as raison, il faut recompiler cython avec Python 3.3...
Avant de me lancer la-dedans, est-ce que ca vaut le coup de le faire, ou bien tout le monde utilise-t-il encore Python 2.7?

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: moteur d aide

Message par frederic han » ven. juin 14, 2013 8:34 am

En fait le pb vient de mon code, il y a une diff pour les strings entre les 2 pythons il faudra que je comprenne les conversion c++ strings, char * , et les differentes strings en python 2 et 3 et adapter le source.

pour l'instant j'ai l'impression que les linux ont encore comme lien par defaut les python2.
Fred

Répondre