Bonjour à tous
Voila pour faire simple disons que je veux creer un exe (sous tkinter afin d'eviter l'affreuse console ms dos) qui transforme une matrice ligne du type [0,1,2,3,4,5,6,7,8] en une matrice

array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

pour cela j'utilise la billbiothèque numpy

le script est le suivant

voila les modules
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
from Tkinter import *
import PIL
import Image
import numpy
et voila le coprs du script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def matrixx(event):  # on applique le numpy.reshape à l'aide des informations collectées ci dessous.
    matrix= numpy.reshape(filtre,(hauteur,largeur))
 
 
def valider_filtre (event): # on récupere dans la variable "largeur" le nombre de colonne de la matrice.
    global entree4, texte7, texte8, largeur
    largeur = entree3.get()
    texte5.destroy()
    texte6.destroy()
    entree3.destroy()
    texte7=Label(fenetre, text='le filtre est maintenant près à être reconstruit.')
    texte7.pack(side=TOP)
    texte8=Label(fenetre, text='faut il reconstruire le filtre (y ou n)?')
    texte8.pack(side=LEFT)
    entree4=Entry(fenetre)
    entree4.pack(side=RIGHT)
    entree4.bind("<Return>", matrixx)
 
 
def valider_filtre2 (event):  # on récupère dans la variable "hauteur"  le nombre de lignes de la matrice qu'il faut construire.
    global entree3, texte5, texte6, hauteur
    hauteur = entree2.get()
    texte3.destroy()
    texte4.destroy()
    entree2.destroy()
    texte5=Label(fenetre, text='le filtre comporte ' + str(hauteur)+' lignes.')
    texte5.pack(side=TOP)
    texte6=Label(fenetre, text='combien comporte-t-il de colonnes?')
    texte6.pack(side=LEFT)
    entree3=Entry(fenetre)
    entree3.pack(side=RIGHT)
    entree3.bind("<Return>", valider_filtre)
 
def valider_filtre_ligne (event): # on récupère dans la variable "filtre" la matrice en ligne.
    global entree2, texte3, texte4, filtre
    filtre= entree1.get()
    texte1.destroy()
    texte2.destroy()
    entree1.destroy()
    texte3=Label(fenetre, text='le filtre '+ str(filtre) +' à été defini.')
    texte3.pack(side=TOP)
    texte4=Label(fenetre, text='Nous allons reconstruire le filtre,\n entrer le nombre de lignes que comporte ce filtre.')
    texte4.pack(side=LEFT)
    entree2=Entry(fenetre)
    entree2.pack(side=RIGHT)
    entree2.bind("<Return>",valider_filtre2)
 
 
 
# Programme principal
fenetre = Tk()
texte1 = Label(fenetre, text='application de filtre')
texte1.pack(side=TOP)
texte2 = Label(fenetre, text='Entrez votre filtre en ligne :')
texte2.pack(side=LEFT)
entree1 = Entry(fenetre)
entree1.pack(side=RIGHT)
entree1.bind("<Return>", valider_filtre_ligne)
fenetre.mainloop()
le fichier setup est classique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#python
from distutils.core import setup 
import py2exe
import Tkinter
 
setup(name="TIPE 2007", 
      version="1.0", 
      description="traitement d'images numeriques", 
      author="Remy, MPSI 2", 
      windows = [
        {
            "script": "script.py",
            "icon_resources": [(1, "Globe.ico")]
        }
    ],)
le problème est le suivant, l'execution se passe bien jusqu'à la dernière étape, c'est à dire que le programme collecte bien les iformations "filtre", "hauteur" et "largeur" mais une erreur se produit lors de l'execution de matrixx:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
def matrixx(event):
    matrix= numpy.reshape(filtre,(hauteur,largeur))
le message est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Exception in Tkinter callback
Traceback (most recent call last):
  File "Tkinter.pyc", line 1403, in __call__
  File "erreur.py", line 11, in matrixx
  File "numpy\core\fromnumeric.pyc", line 104, in reshape
  File "numpy\core\fromnumeric.pyc", line 36, in _wrapit
TypeError: an integer is required
quelqu'un peut m'aider??
d'avance merci .
Rémy