j'ai le probl=E8me suivant avec Jython,
j'essaie de cr=E9er une image avec ImageIcon =E0 partir d'un array of
byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler
avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[],
java.awt
.Image, String or java.net.URL
Portion du code
byte =3D []
for x in stri:
byte.append(ord(x))
icon =3D swing.ImageIcon(byte)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kaerbuhez
j'ai le problème suivant avec Jython, j'essaie de créer une image avec ImageIcon à partir d'un array of byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[], java.awt .Image, String or java.net.URL
Portion du code
byte = [] for x in stri: byte.append(ord(x)) icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = [] for x in stri: byte_list.append(ord(x)) byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage, - est-ce difficile de recompiler la version CVS de jython ? - est-elle raisonablement stable ?
j'ai le problème suivant avec Jython,
j'essaie de créer une image avec ImageIcon à partir d'un array of
byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler
avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[],
java.awt
.Image, String or java.net.URL
Portion du code
byte = []
for x in stri:
byte.append(ord(x))
icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = []
for x in stri:
byte_list.append(ord(x))
byte_array=jarray.array(byte_list, 'b')
icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de
variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage,
- est-ce difficile de recompiler la version CVS de jython ?
- est-elle raisonablement stable ?
j'ai le problème suivant avec Jython, j'essaie de créer une image avec ImageIcon à partir d'un array of byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[], java.awt .Image, String or java.net.URL
Portion du code
byte = [] for x in stri: byte.append(ord(x)) icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = [] for x in stri: byte_list.append(ord(x)) byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage, - est-ce difficile de recompiler la version CVS de jython ? - est-elle raisonablement stable ?
kaerbuhez
j'ai le problème suivant avec Jython, j'essaie de créer une image avec ImageIcon à partir d'un array of byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[], java.awt .Image, String or java.net.URL
Portion du code
byte = [] for x in stri: byte.append(ord(x)) icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = [] for x in stri: byte_list.append(ord(x)) byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage, - est-ce difficile de recompiler la version CVS de jython ? - est-elle raisonablement stable ?
Zut, pas pu testé donc me suis planté. Version correcte (j'espère):
import jarray byte_list = [] bytes_list=[ord(x) for x in stri] byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_array)
Au passage, j'ai remplacé la boucle par une list comprehension ... et du coup, je me demande si ton probléme n'est pas tout simplement un probléme d'indentation (alors tu n'as pas besoin du jarray mais il ne fait pas de mal non plus, en tout cas dans ma version).
Ce qu'il faut comprendre c'est que Jython essaie de convertir implitement* les types python en types Java ET de trouver le bon constructeur. Tu dois donc passer ton tableau de int python d'une manière telle que Jython le comprenne et donc convertisse en array de bytes java et appelle le bon constructeur.
*au passage en rompant à mon avis avec "explicit is better ..."
j'ai le problème suivant avec Jython,
j'essaie de créer une image avec ImageIcon à partir d'un array of
byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler
avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[],
java.awt
.Image, String or java.net.URL
Portion du code
byte = []
for x in stri:
byte.append(ord(x))
icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = []
for x in stri:
byte_list.append(ord(x))
byte_array=jarray.array(byte_list, 'b')
icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de
variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage,
- est-ce difficile de recompiler la version CVS de jython ?
- est-elle raisonablement stable ?
Zut, pas pu testé donc me suis planté. Version correcte (j'espère):
import jarray
byte_list = []
bytes_list=[ord(x) for x in stri]
byte_array=jarray.array(byte_list, 'b')
icon = swing.ImageIcon(byte_array)
Au passage, j'ai remplacé la boucle par une list comprehension ... et du
coup, je me demande si ton probléme n'est pas tout simplement un
probléme d'indentation (alors tu n'as pas besoin du jarray mais il ne
fait pas de mal non plus, en tout cas dans ma version).
Ce qu'il faut comprendre c'est que Jython essaie de convertir
implitement* les types python en types Java ET de trouver le bon
constructeur. Tu dois donc passer ton tableau de int python d'une
manière telle que Jython le comprenne et donc convertisse en array de
bytes java et appelle le bon constructeur.
*au passage en rompant à mon avis avec "explicit is better ..."
j'ai le problème suivant avec Jython, j'essaie de créer une image avec ImageIcon à partir d'un array of byte, cela fonctionnait avec Jython 2.1 mais depuis que j'ai recompiler avec les fichiers du CVS j'ai l'erreur suivante
TypeError: javax.swing.ImageIcon(): 1st arg can't be coerced to byte[], java.awt .Image, String or java.net.URL
Portion du code
byte = [] for x in stri: byte.append(ord(x)) icon = swing.ImageIcon(byte)
quelqu'un a une idée?
Seb
Bon, j'ai pas la même version de Jython que toi mais si tu remplaces ta
portion de code par celle-ci:
byte_list = [] for x in stri: byte_list.append(ord(x)) byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_list)
(j'évite aussi - à tort ou à raison - d'utiliser "byte" comme nom de variable)
Est-ce que ça marche ? Sinon, n'hésite pas à poster le traceback complet.
Et au passage, - est-ce difficile de recompiler la version CVS de jython ? - est-elle raisonablement stable ?
Zut, pas pu testé donc me suis planté. Version correcte (j'espère):
import jarray byte_list = [] bytes_list=[ord(x) for x in stri] byte_array=jarray.array(byte_list, 'b') icon = swing.ImageIcon(byte_array)
Au passage, j'ai remplacé la boucle par une list comprehension ... et du coup, je me demande si ton probléme n'est pas tout simplement un probléme d'indentation (alors tu n'as pas besoin du jarray mais il ne fait pas de mal non plus, en tout cas dans ma version).
Ce qu'il faut comprendre c'est que Jython essaie de convertir implitement* les types python en types Java ET de trouver le bon constructeur. Tu dois donc passer ton tableau de int python d'une manière telle que Jython le comprenne et donc convertisse en array de bytes java et appelle le bon constructeur.
*au passage en rompant à mon avis avec "explicit is better ..."
Sébastien Ramage
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
pfiou... je me demande si je ne ferais pas mieux d'apprendre le java
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
pfiou...
je me demande si je ne ferais pas mieux d'apprendre le java
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
pfiou... je me demande si je ne ferais pas mieux d'apprendre le java
kaerbuhez
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
C'est que ton ord(x) renvoie une valeur > 255 : met un print pour voir. N'hésite pas à mettre TOUT le message d'erreur, ça aidera beaucoup à t'aider ;-)
Ta chaine est pas en Unicode j'espère !
(Tout ça est sous réserve, comme mentionné précédemment, je ne dispose pas de la plateforme pour tester et valider ce que je dis, désolé)
pfiou... je me demande si je ne ferais pas mieux d'apprendre le java
C'est à mon avis LE point faible* de Jython : une connaissance de Java
est beaucoup plus utile (voire nécessaire ?) que ne l'est la connaissance de C pour CPython. Y a qu'à regarder les livres Jython, ils sont tous destinés aux programeurs Java voulant scripter en Python plutôt qu'aux developpeurs python voulant accéder à la plate-forme Java. N'empeche, une fois qu'on domine Jython, c'est à mon avis un plus indéniable sur cette plate-forme.
*ce point faible est le revers de la médaille de la grande force de Jython (son point fort par rapport à CPython si on veut) : sa plus grande intégration avec la plateforme sous-jacente. Il suffit de voir comme il est simple - voire trivial - de faire des "extensions" Java pour Jython.
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
C'est que ton ord(x) renvoie une valeur > 255 : met un print pour voir.
N'hésite pas à mettre TOUT le message d'erreur, ça aidera beaucoup à
t'aider ;-)
Ta chaine est pas en Unicode j'espère !
(Tout ça est sous réserve, comme mentionné précédemment, je ne dispose
pas de la plateforme pour tester et valider ce que je dis, désolé)
pfiou...
je me demande si je ne ferais pas mieux d'apprendre le java
C'est à mon avis LE point faible* de Jython : une connaissance de Java
est beaucoup plus utile (voire nécessaire ?) que ne l'est la
connaissance de C pour CPython. Y a qu'à regarder les livres Jython, ils
sont tous destinés aux programeurs Java voulant scripter en Python
plutôt qu'aux developpeurs python voulant accéder à la plate-forme Java.
N'empeche, une fois qu'on domine Jython, c'est à mon avis un plus
indéniable sur cette plate-forme.
*ce point faible est le revers de la médaille de la grande force de
Jython (son point fort par rapport à CPython si on veut) : sa plus
grande intégration avec la plateforme sous-jacente. Il suffit de voir
comme il est simple - voire trivial - de faire des "extensions" Java
pour Jython.
ça fonctionne mieux (en changeant byte_list en bytes_list)
mais nouveau problème:
OverflowError: value too large for byte
C'est que ton ord(x) renvoie une valeur > 255 : met un print pour voir. N'hésite pas à mettre TOUT le message d'erreur, ça aidera beaucoup à t'aider ;-)
Ta chaine est pas en Unicode j'espère !
(Tout ça est sous réserve, comme mentionné précédemment, je ne dispose pas de la plateforme pour tester et valider ce que je dis, désolé)
pfiou... je me demande si je ne ferais pas mieux d'apprendre le java
C'est à mon avis LE point faible* de Jython : une connaissance de Java
est beaucoup plus utile (voire nécessaire ?) que ne l'est la connaissance de C pour CPython. Y a qu'à regarder les livres Jython, ils sont tous destinés aux programeurs Java voulant scripter en Python plutôt qu'aux developpeurs python voulant accéder à la plate-forme Java. N'empeche, une fois qu'on domine Jython, c'est à mon avis un plus indéniable sur cette plate-forme.
*ce point faible est le revers de la médaille de la grande force de Jython (son point fort par rapport à CPython si on veut) : sa plus grande intégration avec la plateforme sous-jacente. Il suffit de voir comme il est simple - voire trivial - de faire des "extensions" Java pour Jython.
Sébastien Ramage
finalement je laisse tomber, je vais patienter un peu et apprendre le java à temps perdu.
je réponds à ta question, il est très facile de recompiler Jython en utilisant ant il suffit de créer un fichier ant.properties sur le modèle donné dans un des fichier texte du CVS (je ne sais plus lequel) et ensuite ant fait le travail avec le fichier build.xml
Attention, la version du CVS est actuellement 2.2a1 donc il faut avoir Python 2.2.x pour récupérer le contenu du répertoire Lib pour Jython
Pour la stabilité, je n'ai pas vraimment eu le temps de tester mais ce que je peux dire c'est que cette version corrige de nombreux problème de Jython 2.1 (notamment pour une utilisation avec Java 1.5)
merci de ton aide Seb
finalement je laisse tomber, je vais patienter un peu et apprendre le
java à temps perdu.
je réponds à ta question, il est très facile de recompiler Jython en
utilisant ant
il suffit de créer un fichier ant.properties sur le modèle donné
dans un des fichier texte du CVS (je ne sais plus lequel)
et ensuite ant fait le travail avec le fichier build.xml
Attention, la version du CVS est actuellement 2.2a1 donc il faut avoir
Python 2.2.x pour récupérer le contenu du répertoire Lib pour Jython
Pour la stabilité, je n'ai pas vraimment eu le temps de tester mais ce
que je peux dire c'est que cette version corrige de nombreux problème
de Jython 2.1 (notamment pour une utilisation avec Java 1.5)
finalement je laisse tomber, je vais patienter un peu et apprendre le java à temps perdu.
je réponds à ta question, il est très facile de recompiler Jython en utilisant ant il suffit de créer un fichier ant.properties sur le modèle donné dans un des fichier texte du CVS (je ne sais plus lequel) et ensuite ant fait le travail avec le fichier build.xml
Attention, la version du CVS est actuellement 2.2a1 donc il faut avoir Python 2.2.x pour récupérer le contenu du répertoire Lib pour Jython
Pour la stabilité, je n'ai pas vraimment eu le temps de tester mais ce que je peux dire c'est que cette version corrige de nombreux problème de Jython 2.1 (notamment pour une utilisation avec Java 1.5)