Anomalie #18
Inclusion problématique de arrayobject.h dans pythonExt/src/pymNumeric.cpp
80%
Description
Inclusion problématique de arrayobject.h dans pythonExt/src/pymNumeric.cpp
Description:
----------------------------------------
#include <numarray/arrayobject.h> ne passe pas avec certaines configurations.
J'utilise python2.3 .
// Python 2.3:
#if PY_MINOR_VERSION < 4
#include <numarray/arrayobject.h>
#5 15/06/2007 15:08 (Tibs)
---------------------------------------------------------------------------
Change: status: "pending" -> "accepted"
Comment:
Bon en fait j'avais oublié de l'accepter celui la.
Le problème est toujours semblable, sauf que NumPy est vraiment en train de
s'imposer.
Je pense que lorsque le passage à >boost-1.34 et >python-2.5 se fera ce sera
l'occasion d'imposer l'utilisation par défaut de NumPY dans le code et de fermer
ce bug.
#4 15/06/2007 15:08 (Tibs)
---------------------------------------------------------------------------
Change: assignees: "[]" -> "['raffi', 'Thomas', 'Tibs']"
#3 comment 09/02/2007 12:07 (Anonymous User)
---------------------------------------------------------------------------
Comment:
Ce problème ne vient malheureusement pas de Morphee.
Un petit résumé de la situation: deux librairies avec des fonctionalites très
proches ont été développées pour Python
* Numeric qui a changé plusieurs fois de nom et est donc aussi connues sous
"NumPy" ou "scipy_core"
* Numarray
Les librairies telles que Boost.Python ont rapidement offert une interface
censée fonctionner avec ces "deux" librairies, et permettant d'utiliser les
tableau (array, ndarray) définis dans ces modules Python lors de l'interfacage
d'une librairie C++ avec le langage Python.
C'est dans ce contexte que Morphée utilise ces librairies.
Les problèmes actuels découlent de deux faits:
* ces librairies sont supportées différemment entre les divers OS et mm entre
les diverses distibutions Linux (certaines considérant que l'une ou l'autre des
librairies comme instable et ne proposant que l'autre par default etc etc)
* ces disparité ont engendré le fait que les chemins vers les includes varient
aussi bcp suivant les systèmes (certains sont dans le path d'autres non etc...)
Une note d'espoir:
On peut noter sur le site de NumPy (numpy.scipy.org) que la décision a été prise
paar les deux camps de fusionner les librairies (et si on a de la chance de ne
plus en changer le nom tous les 6mois...). Ceci est confirmé sur le site des
développeur de Numarray à Stanford.
L'avenir appartient donc à Numpy.
Les problèmes restants:
* D'après mes experiences récentes le code d'interfacage de Boost ne fonctionne
plus avec NumPy et j'ai donc du improviser une code d'interfacage qui se trouve
dans Morphee mais n'est activé à la compilation qu'avec le flag USE_NUMPY
(étonnement ce code semble marcher et passe les tests MorpheePython)
* le repertoire ou se trouvent les en-têtes à inclure ne me semble pas etre dans
un emplacement standard (cf le path que j'ai mis et qui est specifique a ma
distribution Linux (Gentoo) ), c'est très moche mais nous n'y sommes pour rien.
Ce qu'il faut faire:
* passer à NumPy sur toutes les installations où c'est possbile
* continuer a faire sa propre tambouille là où ce n'est pas possible (de toute
facon il FAUDRA passer à Numpy)
* surveiller l'uniformisation EN COURS des librairies Numpy et numarray pour
pouvoir aussi unifier leur utilisation dans Morphée
Thibauld
#2 09/02/2007 11:32 (etienne)
---------------------------------------------------------------------------
Change: solution: "Voici la rustine que j'utilise:
//#include <numarray/arrayobject.h>
#include <Numeric/arrayobject.h>
Il faudrait trouver une solution plus générale.
" -> "Voici la rustine que j'utilise:
// Python 2.3:
#if PY_MINOR_VERSION < 4
// numarray replaced by Numeric (Etienne Decenciere)
//#include <numarray/arrayobject.h>
#include <Numeric/arrayobject.h>
Il faudrait trouver une solution plus générale.
"
Change: description: "#include <numarray/arrayobject.h> ne passe pas avec certaines configurations (lequelles?)." -> "#include <numarray/arrayobject.h> ne passe pas avec certaines configurations. J'utilise python2.3 .
// Python 2.3:
#if PY_MINOR_VERSION < 4
#include <numarray/arrayobject.h>
"
#1 09/02/2007 11:24 (etienne)
---------------------------------------------------------------------------
Change: topic: "" -> "UI"
Change: solution: "" -> "Voici la rustine que j'utilise:
//#include <numarray/arrayobject.h>
#include <Numeric/arrayobject.h>
Il faudrait trouver une solution plus générale.
"
Change: importance: "medium" -> "low"
Change: title: "" -> "Inclusion problématique de arrayobject.h dans pythonExt/src/pymNumeric.cpp"
Change: description: "" -> "#include <numarray/arrayobject.h> ne passe pas avec certaines configurations (lequelles?)."