Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 08/01/2008, à 17:57

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

faut être plus explicite pour lancer ton script (securite linux) :
./build_yLife.py
ou
python build_yLife.py

Si tu as un doute pour le retour de la commande glob()
tu peux rajouter un print de ton glob, et voir les fichiers voulus


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#52 Le 08/01/2008, à 20:08

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Merci, ça se lance mais ça me retourne :

from: can't read /var/mail/py2deb
from: can't read /var/mail/glob
./build_yLife.py: 7: Syntax error: "(" unexpected

Est-ce que mon fichier comporte une erreur de syntaxe ?
A tout hasard, je suis toujours sous Edgy, est-ce que cela peut poser problème ? Je crois avoir Python 2.4 et py2deb installés correctement.
Vu l'erreur, j'ai cru à  des droits... j'ai essayé : sudo ./build_yLife.py mais même résultat.


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#53 Le 08/01/2008, à 21:13

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

;-)

si tu executes le fichier directement, il te faut une ligne "shebang" au top du fichier (norme linux) : genre rajouter ça en 1er ligne : "#!/usr/bin/python" (sans les guillemets)
sinon, faut executer à travers l'interpreteur : $ python tonfichier.py


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#54 Le 08/01/2008, à 22:07

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Tout bête en fait wink

Merci, je m'aperçois donc que glob n'est pas récursif, c'est bien embêtant... Je ne connais pas Python mais d'après ce que j'ai vu, os et glob sont les 2 principales librairies pour accéder aux fichiers... n'y-a-t-il aucune fonction qui retoune une liste de tous les fichiers présents dans un répertoire ? Et ce récursivement ?
Ou bien non, et dans ce cas, on va être obligé de coder une fonction de listage récursive ?

Mis à  part ça, ça a l'air de bien fonctionner (la fonction print en tous cas, je n'ai pas encore testé la packaging réel).

Sinon, un détail, pour la section (catégories), est-ce les mêmes possibilités que pour un .desktop ? Dans mon .desktop, je me suis basé sur : "games;card games;"
Je voudrais savoir si je peux reprendre cette catégorie.


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#55 Le 08/01/2008, à 22:25

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> bismut

Pour parcourir récursivement un répertoire, voir fonction visiting()

http://forum.ubuntu-fr.org/viewtopic.php?pid=1420209#p1420209 msg #18

(Impossible de faire mieux quel que soit l'os)

#56 Le 08/01/2008, à 23:38

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Merci aleph.
Bien que ne connaissant pas le Python, je dirais grossomodo que tu me donnes la structure générale de la fonction à  coder...
En modifiant un peu visiting pour avoir des chemins comme ceux retournés par glob, et en codant dojob, ça doit être faisable, c'est bien ça ?

Ne serait-ce pas judicieux d'inclure une telle fonction dans py2deb plutot que dans le fichier de config ? Je dis pas ça pour laisser faire le boulot aux autres hein XD mais ça me semble plus logique non ?
Est-ce prévu avec l'avènement d'une interface graphique à  tout hasard ? ^^

Je vais quand même étudier la question dans mon coin, malgré mes maigres connaissances, je pourrais toujours aider, sait-on jamais...


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#57 Le 09/01/2008, à 01:38

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> Ne serait-ce pas judicieux d'inclure une telle fonction dans py2deb
> plutot que dans le fichier de config ?

Non, comme python, je pense que l'explicite est mieux que l'implicite.
Je prefere forcer les gens à  choisir les fichiers qu'il veulent, à  les "rendre responsable" en qques sortes.
Avec ce genre de fonctions, on a vite fait d'inclure toutes sortes de sous repertoires, sous fichiers ... qui peuvent avoir des conséquences plus dangereuses

> Est-ce prévu avec l'avènement d'une interface graphique à  tout hasard ?

l'interface graphique, qui est d'ailleurs finie (faut que je la teste en profondeur encore), permet de drag'n'dropper des fichiers. Par conséquent permet d'en prendre plusieurs d'un coup de souris.
Mais, dans le même ordre d'idée, elle ne permet pas de d'n'd des folders


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#58 Le 09/01/2008, à 11:05

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> Bismut

"visiting()" est un réponse à  la question que tu as posée, en aucun cas une panacée et encore moins un  bout de code à  bricoler.


Le petit script que j'ai proposé était plutà´t un réponse simple et efficace à  la myriade d'utilisateurs qui cherchent des solutions d'administration, tels que filtrage de fichiers, tri, modification (partielle) de noms de fichiers, déplacement, etc.

#59 Le 09/01/2008, à 12:56

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Ok, bon ben j'ai regardé un peu plus en détail l'arborescence de XULRunner, ouf, il ne semble pas y avoir plus de 3 ou 4 répertoires en profondeur.

Je pense que j'aurais plus vite fait de tous les ajouter via un simple glob du coup.
Mon fichier de config fera une centaine de lignes mais bon, une fois fait... Ce ne sera plus à faire et mon packaging marchera de manière automatique alors ça va smile

Je vous tiens au courant de mes progrès.

PS : J'ai hâte de pouvoir tester l'interface graphique, ce sera un peu le InnoSetup de Linux en version amélioré puisque basé sur .deb et apt ^^


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#60 Le 09/01/2008, à 14:16

ekingr

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@manatlan
Sinon, tu pourrais rajouter juste une méthode (que l'utilisateur choisira ou non) qui permet d'inclure tous les fichiers d'un répertoire ...

Hors ligne

#61 Le 09/01/2008, à 17:54

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Voici o๠j'en suis :

- Un packaging simple avec quelques fichiers marche très bien : Beau .deb qui s'installe et se désinstalle à  la perfection ! C'est assez plaisant de voir son soft apparaitre dans Gdebi et Synaptic big_smile

2 petits problèmes en suspens :

- Je voudrais rajouter un lien symbolique dans usr/bin, pointant vers mon exécutable se trouvant à  usr/libs/ylife/ylife... mais je ne maitrise pas trop... Je sais faire un clic droit > Créer un lien sous Nautilus, mais comment gérer ce type de fichier : le copier/coller, éditer ses propriétés,... je ne comprends pas trop son comportement en fait.

- Et toujours le problème du contenu de répertoires. Je comptais faire une liste de tous mes répertoires avec glob, mais problème : lorsque glob tombe sur un répertoire et pas un fichier, il plante complètement py2deb apparemment.
Je vais devoir me tourner vers la création d'une fonction récursive je crois bien en m'inspirant de visiting() de aleph.


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#62 Le 09/01/2008, à 20:51

ekingr

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

D'après ce que j'ai vu des autres applications, le lien dans /usr/bin, n'est pas réellement un lien, mais un script sh (bash) qui va lancer l'exécution du fichier principal de ton app.
Exemple de code :

#!/bin/sh
cd /usr/lib/dossierdetonappdanslib
exec tonscript "$@"

Change juste dossierdetonappdanslib par le nom du dossier que tu crées pour ton application dans /usr/lib/ et modifie exec par la commande adaptée pour lancer l'exécution.
@+

__________
PS : sinon, il est possible d'y mettre d'autres types de scripts comme du python, du perl ou même du compilé, mais dans ce cas, il faut enlever l'extension de ton fichier et faire quelques autres modifications qui me sont inconnues ...

Dernière modification par ekingr (Le 09/01/2008, à 20:55)

Hors ligne

#63 Le 09/01/2008, à 22:15

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Merci de l'astuce, j'ai suivi ton conseil smile (juste pour savoir, à quoi sert le paramètre "s@" à l'exécution ?)

Il ne me reste donc plus qu'à charger récursivement tous les fichiers de tous mes répertoires. J'ai trouvé un bout de code que j'ai essayé d'adapter mais ne connaissant pas le formalisme Python et sa syntaxe Objet, mon script ne marche pas... il ne doit pas manquer grand chose...

#!/usr/bin/python

from py2deb import Py2deb
from glob import glob
import os, sys

class FileObj:
    def __init__(self, filepath):
        self.filepath = self._get_path(filepath)
        self.filename = os.path.basename(self.filepath)

    def _get_path(self, filepath):
        fullpath = os.path.abspath(os.path.normpath(filepath))
        if os.path.exists(fullpath):
            return fullpath
        else:
            raise EnvironmentError("The '%s' file does not exist" % filepath)

    def isdir(self):
        return os.path.isdir(self.filepath)

    def isfile(self):
        return not self.isdir()

    def get_dirs(self):
        if self.isdir():
            full_file_list = os.listdir(self.filepath)
            return [file for file in full_file_list if
                      FileObj(os.path.join(self.filepath, file)).isdir()]
        else:
            return []

    def get_files(self):
        if self.isdir():
            full_file_list = os.listdir(self.filepath)
            return [file for file in full_file_list if
                      not FileObj(os.path.join(self.filepath, file)).isdir()]
        else:
            return []

    def get_recursive_dirs(self):
        recursive_dir_list = []

        def visit(arg, dirname, files):
            recursive_dir_list.append(dirname)

        if self.isdir():
            os.path.walk(self.filepath, visit, None)
            return recursive_dir_list
        else:
            return []

    def get_recursive_files(self):
        file_list = []
        if self.isdir():
            for dir in self.get_recursive_dirs():
                files = os.listdir(dir)
                for file in files:
                    if os.path.isfile(os.path.join(dir, file)):
                        file_list.append(os.path.join(dir, file))
            return file_list
        else:
            return []

def main():
    mon_logiciel = FileObj('/yLife')
    ma_liste_de_fichiers = mon_logiciel.get_recursive_files()

if __name__ == "__main__":
    main()



version="0.5.6"
changelog=open("yLife/Changelog.txt","r").read()

p=Py2deb("ylife")
p.author="xxxxxxxxxxxx"
p.mail="xxxxxxxxxxxx@gmail.com"
p.description="""Un logiciel complet pour Yu-Gi-Oh! TCG."""
p.url = "http://ylife.sourceforge.net"
p.license="gpl"
p.section="Game"
p.arch="all"


p["/usr/lib"] = ma_liste_de_fichiers
p["/usr/share/pixmaps"] = ["ylife.png",]
p["/usr/share/applications"] = ["yLife.desktop",]

print p
#p.generate(version,changelog,rpm=True,src=True)

Doit pas y avoir grand chose à modifier je pense non ? Merci d'avance smile

Dernière modification par Bismut (Le 09/05/2010, à 08:55)


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#64 Le 09/01/2008, à 23:07

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

je dirai comme ça (mais ça me semble bien lourd):

#!/usr/bin/python

from py2deb import Py2deb
from glob import glob
import os, sys

class FileObj:
    def __init__(self, filepath):
        self.filepath = self._get_path(filepath)
        self.filename = os.path.basename(self.filepath)

    def _get_path(self, filepath):
        fullpath = os.path.abspath(os.path.normpath(filepath))
        if os.path.exists(fullpath):
            return fullpath
        else:
            raise EnvironmentError("The '%s' file does not exist" % filepath)

    def isdir(self):
        return os.path.isdir(self.filepath)

    def isfile(self):
        return not self.isdir()

    def get_dirs(self):
        if self.isdir():
            full_file_list = os.listdir(self.filepath)
            return [file for file in full_file_list if
                      FileObj(os.path.join(self.filepath, file)).isdir()]
        else:
            return []

    def get_files(self):
        if self.isdir():
            full_file_list = os.listdir(self.filepath)
            return [file for file in full_file_list if
                      not FileObj(os.path.join(self.filepath, file)).isdir()]
        else:
            return []

    def get_recursive_dirs(self):
        recursive_dir_list = []

        def visit(arg, dirname, files):
            recursive_dir_list.append(dirname)

        if self.isdir():
            os.path.walk(self.filepath, visit, None)
            return recursive_dir_list
        else:
            return []

    def get_recursive_files(self):
        file_list = []
        if self.isdir():
            for dir in self.get_recursive_dirs():
                files = os.listdir(dir)
                for file in files:
                    if os.path.isfile(os.path.join(dir, file)):
                        file_list.append(os.path.join(dir, file))
            return file_list
        else:
            return []


if __name__ == "__main__":
    version="0.5.6"
    changelog=open("yLife/Changelog.txt","r").read()
    
    p=Py2deb("ylife")
    p.author="Raphael Rigaud"
    p.mail="raph.rigaud@gmail.com"
    p.description="""Un logiciel complet pour Yu-Gi-Oh! TCG."""
    p.url = "http://ylife.sourceforge.net"
    p.license="gpl"
    p.section="Game"
    p.arch="all"
    
    
    p["/usr/lib"] = FileObj('/yLife').get_recursive_files()
    p["/usr/share/pixmaps"] = ["ylife.png",]
    p["/usr/share/applications"] = ["yLife.desktop",]
    
    print p

    #p.generate(version,changelog,rpm=True,src=True)

sinon essaie ça (moi c comme ça que je l'aurai fait)

#!/usr/bin/python

from py2deb import Py2deb
import os, sys,stat

def walktree (top = ".", depthfirst = True):
    names = os.listdir(top)
    if not depthfirst:
        yield top, names
    for name in names:
        try:
            st = os.lstat(os.path.join(top, name))
        except os.error:
            continue
        if stat.S_ISDIR(st.st_mode):
            for (newtop, children) in walktree (os.path.join(top, name), depthfirst):
                yield newtop, children
    if depthfirst:
        yield top, names

def getFolder(path):
    l=[]
    for (basepath, children) in walktree(path,False):
        for child in children:
            l.append( os.path.join(basepath, child) )
    return l


if __name__ == "__main__":
    version="0.5.6"
    changelog=open("yLife/Changelog.txt","r").read()
    
    p=Py2deb("ylife")
    p.author="Raphael Rigaud"
    p.mail="raph.rigaud@gmail.com"
    p.description="""Un logiciel complet pour Yu-Gi-Oh! TCG."""
    p.url = "http://ylife.sourceforge.net"
    p.license="gpl"
    p.section="Game"
    p.arch="all"
    
    
    p["/usr/lib"] = getFolder('/yLife')
    p["/usr/share/pixmaps"] = ["ylife.png",]
    p["/usr/share/applications"] = ["yLife.desktop",]
    
    print p

    #p.generate(version,changelog,rpm=True,src=True)

"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#65 Le 09/01/2008, à 23:19

ekingr

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Bismut a écrit :

Merci de l'astuce, j'ai suivi ton conseil smile

De rien cool

Bismut a écrit :

juste pour savoir, à quoi sert le paramètre "s@" à l'exécution ?

ça sert à transmettre des éventuels arguments à ton programme genre -h, --help, --debugmode ...
Si tu ne mets pas cette option dans le script bash, quant tu appelles la commande, tu auras beau mettre des arguments, ils ne seront pas transmis à l'appli roll

Hors ligne

#66 Le 09/01/2008, à 23:34

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> Bismut

C'est drà´lement alambiqué et il me semble que tu n'aies pas compris le fonctionnement de walk().
La méthode walk() va automatiquement parcourir récursivement les répertoires. Les répertoires et fichiers sont disponibles à  tout "instant" dans dirs et files à  chaque pas d'itération.
Ce que tu fais, c'est utiliser dirs pour consulter les fichiers dans un dir momentané (un des dirs) avec os.listdir() alors que ceux-ci sont *déjà * dans files.

Essaie ceci

#topdir: top path to visit recursively
def visiting2(topdir):
   
    if not os.path.exists(topdir):
        return []
    else:
        r = []
    
    for root, dirs, files in os.walk(topdir):
        #~ print 'root:', root
        #~ print 'dirs:', dirs
        #~ print 'files:', files
        for fn in files:
            r.append(os.path.join(root, fn))
    
    return r

#67 Le 09/01/2008, à 23:49

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

sinon, ça sert à  rien que je le garde sous le coude, ça fait 2 jours que ça traine,
donc voilà  une pre pre release du frontend gtk. J'ai vite rajouter qques tests de base

http://manatlan.free.fr/setup/py2deb-gtk_0.1beta_all.deb
c'est frabiqué avec le front end gtk ;-)
et ça necessite bien evidemment python-py2deb ;-)
http://manatlan.free.fr/setup/python-py2deb_0.3_all.deb
et j'ai fait une doc succinte, in english here : (avec un screenshot)
http://manatlan.infogami.com/py2deb-gtk

(pour rajouter des fichiers, suffit de les drag'n'dropper dans l'onglet FILES, le reste ça se renseigne simplement)

@bismut
Evidemment que là  maintenant tu ne devrais pas avoir trop de soucis à  générer ton deb (enfin si le frontend ne bug pas trop)
Cependant, pour ton cas bien précis, il vaut mieux que tu perseveres en script python, car c'est que ainsi que tu pourra dynamiquement recuperer le changelog, un num de version ou des fichiers rajoutés automatiquement.

@tout le monde
des remarques sur le frontend ?

Dernière modification par manatlan (Le 10/01/2008, à 00:44)


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#68 Le 10/01/2008, à 11:57

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

manatlan, aleph > Merci pour ces codes, je vais étudier ça dès que possible smile

Concernant le frontend, que dire hormis qu'il a l'air parfaitement étudié d'un point de vue ergonomique, c'est comme ça que je l'aurais fait aussi. On aurait pu imaginer un "wizard" mais j'aime pas les "wizard" alors cette intefarce me parait parfaite !

Je ne connais pas bien les besoins d'un programme Python concernant le nombre de fichiers à  distribuer, mais pour mon cas effectivement, il serait abhérent d'utiliser le frontend si je ne peux pas ajouter de dossiers car mon logiciel comporte environ 3000 images contenues dans 200 répertoires... J'y passerais un peu la vie des rats à  les ajouter manuellement, sans compter qu'il faudrait que je me rappelle quels sont les nouveaux, tout ça...

Je ne me réfère qu'au screenshot car je n'ai pas testé le frontend mais je suppose que dans le menu file on a la possibilité d'ouvrir/sauver un fichier de config pour Py2deb, histoire de le réutiliser à  chaque fois ?

Beau boulot en tous cas, moi je vais continuer de travailler sur vos scripts.


EDIT : Génial, le script d'aleph a l'air de marcher au poil ! big_smile . Me reste plus qu'à  fignoler tout ça, vérifier que l script bash de usr/bin lance bien mon appli. et j'aurai un vrai beau Deb de mon application XUL !
Un grand merci à  toi Manatlan !

Dernière modification par Bismut (Le 10/01/2008, à 12:11)


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#69 Le 11/01/2008, à 22:57

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@bismut
tu nous tiens au courant quand ton package sera ready, hein ?


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#70 Le 12/01/2008, à 17:15

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Il semblerait que ça marche smile enfin pour le Packaging du moins. Pour l'instant je fais mes tests sans mes images (120 Mo d'images environ), ce qui fait un répertoire de 30 Mo avec un millier de fichiers.
Et bien ça génère un beau .deb de 10 Mo après 1 minute environ smile

NB : Si jamais un fichier temp de gEdit s'y est glissé (avec une tilde à  la fin, qui sont cachés), et bien ça bloque pydeb. Une fois que j'ai compris et supprimé mes 1 ou 2 vilains petits fichiers, ça tourne bien.


Ensuite, à  l'installation : Aucun problème.
Je me retrouve avec mon logiciel ajouté dans la bonne catégorie avec la bonne icà´ne.

Les problèmes maintenant :

- Mon lanceur ne marche pas : Normalement, je lance mon appli en double-cliquant sur mon fichier "yLife" qui est a priori un exécutable. Il se trouve donc dans : "usr/lib/yLife".
J'ai donc suivi le conseil de ekingr et j'ai créé un fichier "ylife" dans lequel j'ai copié les lignes suivantes :

#!/bin/sh
cd /usr/lib/yLife
exec yLife "$@"

Et ce fichier, je le mets dans usr/bin de cette façon avec py2deb :

p["/usr/bin"] = ["ylife",]

Mais quand je le lance, rien ne se passe... avec le Terminal, j'ai l'erreur suivante :

exec: 3: yLife: not found

Une idée ?

- Plus ennuyeux : Mon appli. réagit bizarrement (je la lance directement en double-cliquant sur usr/lib/yLife/yLife), certaines fenêtres marchent d'autres non et je n'ai pas encore compris pourquoi, enfin ça c'est un problème perso.


Enfin bref, py2deb semble donc très bien fonctionner ! Un grand merci pour ce super utilitaire !

Dès que j'aurai résolu mes petits problèmes, j'essaierai de packager une version plus lourde avec mes images (150 Mo au total).


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#71 Le 12/01/2008, à 17:32

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

ton lanceur devrait plutot etre :

#!/bin/sh
cd /usr/lib/yLife
exec ./yLife "$@"

cependant je sais pas à  quoi sert "exec" (tu peux l'enlever également)


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#72 Le 12/01/2008, à 17:33

ekingr

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

J'ai une idée : la commande exec n'est peut être pas adaptée à  ton type de programme...
Par exemple, pour le Python, il faut utiliser pyton...
Qu'est ce que tu utilises comme commande dans le shell pour lancer ton appli en XUL ?


édit : grillé

Dernière modification par ekingr (Le 12/01/2008, à 18:03)

Hors ligne

#73 Le 12/01/2008, à 17:50

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

manatlan > Impeccable, le lanceur marche au poil maintenant wink

Bon, ben me reste plus qu'un problème : Mon logiciel marche à  moitié XD

Qu'est-ce qui fait que mon logiciel marche dans /home/chezmoi/yLife et pas bien dans usr/lib/yLife ?
J'ai pas encore trouvé l'origine du problème... une idée ?


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#74 Le 12/01/2008, à 18:27

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Bismut a écrit :

manatlan > Impeccable, le lanceur marche au poil maintenant wink

Bon, ben me reste plus qu'un problème : Mon logiciel marche à  moitié XD

Qu'est-ce qui fait que mon logiciel marche dans /home/chezmoi/yLife et pas bien dans usr/lib/yLife ?
J'ai pas encore trouvé l'origine du problème... une idée ?

bah t'as du le developper dans ton /home/chezmoi/yLife ...
t'as peut être mis des chemins en dure (ou chemin absolu) sur des ressources qui font qu'après ça empeche des fenetres de s'ouvrir ... ou alors t'oublis des fichiers necessaires ...
ça peut être que ça ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#75 Le 12/01/2008, à 19:33

Bismut

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Non, il n'y a rien en dur. En fait XUL utilise des chemins chrome relatifs, comme pour une extension Firefox en somme.

Je peux déplacer ou renommer mon répertoire o๠je veux dans mon home/user... il marche très bien...

C'est vraiment étrange. J'aurais compris que le logiciel bug sévère et je me serais dit que ça vient des droits, tout ça... mais là  non.
Il bug sur un code qui est a priori le même qu'une autre fenêtre et qui marche, c'est très étrange.
Bon, ben vais continuer de tester jusqu'à  comprendre, pas d'autre choix smile

EDIT : J'ai trouvé : En fait j'avais oublié que j'avais un fonction qui nettoyait les updates précédentes au démarrage, et forcément problème de droits oblige, ça fait planter le script en cours.

Comment gérer ces problèmes de droit ? Par exemple avant, mon module de MAJ téléchargeait des MAJ et les dézippait dans mon logiciel...
Ici, dans usr/lib, il ne veut pas les télécharger... et je suppose que même si je les télécharge ailleurs, il ne voudra pas dézipper pour les même raisons.
Est-ce esquivable ? Ou suis-je du coup obligé d'utiliser un .deb à  chaque fois ?

J'envisage de jeter mon module de MAJ pour essayer de me servir du Module complémentaires de Firefox qui gère Thèmes et Extensions, c'est plutot pratique. Mais comment fait Firefox sous Ubuntu du coup ? O๠installe-t-il ses extensions ? dans usr/lib ? ou dans les préférences cachés des utilisateurs genre ./Firefox ? Etrange d'y mettre du code non ? Je pense pas que ce soit là ...

Dernière modification par Bismut (Le 12/01/2008, à 20:10)


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne