moteur d aide
Modérateur : xcasadmin
Re: moteur d aide
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:-))
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:-))
Re: moteur d aide
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...
Je suppose qu'il faudra aussi ajouter les versions 2.7 et 3.3...
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: moteur d aide
En fait il n'a pas l'air de trouver la libpari:
/usr/64/local/lib/libpari.dylib
image not found
/usr/64/local/lib/libpari.dylib
image not found
Re: moteur d aide
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.
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.
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: moteur d aide
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:
(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)
Re: moteur d aide
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?
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: moteur d aide
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:
si tu distribues aussi ces librairies peut etre vaut mieux t'il preconfigurer le bon chemin plutot que de demander un lien?
a+
Fred
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
a+
Fred
Re: moteur d aide
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!
Espérons que demain sera le tour de windows de capituler!
Re: moteur d aide
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.
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.
Re: moteur d aide
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.
Re: moteur d aide
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...
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: moteur d aide
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
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
Re: moteur d aide
j'ai maintenant un probleme lors de la creation de GIACNULL, je vais installer cython et essayer de faire des modifs dans le pyx...
Re: moteur d aide
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?
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?
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: moteur d aide
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
pour l'instant j'ai l'impression que les linux ont encore comme lien par defaut les python2.
Fred