Le fichier setup.py est de nouveau plus complexe et j'arrive maintenant, quand j'installe le .deb, à intégrer le dossier data (où son rangés les arrières-plans) et le dossier images (qui contient maintenant toutes les autres images) dans /usr/.
Le fichier miks_game.py se range lui dans /usr/share/pyshared/ 🙂
Pour y parvenir, j'ai dû mettre le répertoire où vont se situer les images + indiquer le dossier où elles se trouvent à ce niveau:
IMAGES = [('images', ['images/arriereplan.png', 'images/arriereplan_cote.png', 'images/arriereplan_cote2.png', 'images/miks_roll2.png', 'images/miks_smackup2.png', 'images/miks_static.png', 'images/miks_walk2.png', 'images/tux_defaite.png', 'images/tux_victoire.png'])]
Au départ, je ne mettais que le nom des images, et non leur chemin, dans la deuxième partie de ce code et ça ne fonctionnait pas.
Voici setup.py au complet tel qu'il est actuellement:
import os
from stat import ST_CTIME
from distutils.core import setup
# chemin des images de fond
data_file1 = 'data'
data_file = 'data/'
def get_files_by_date(directory):
files = [(os.stat(directory+'/'+f)[ST_CTIME], f) for f in os.listdir(directory) if os.path.isfile(directory+'/'+f)]
files.sort()
files.reverse()
return [f for s, f in files]
chemincomplet= os.path.abspath(data_file1)
listfichier = get_files_by_date(chemincomplet)
image1b = listfichier[0]
image2b = listfichier[1]
DATA = [('data', [data_file+image1b, data_file+image2b])]
IMAGES = [('images', ['images/arriereplan.png', 'images/arriereplan_cote.png', 'images/arriereplan_cote2.png', 'images/miks_roll2.png', 'images/miks_smackup2.png', 'images/miks_static.png', 'images/miks_walk2.png', 'images/tux_defaite.png', 'images/tux_victoire.png'])]
setup(name='miks_game',
version='1.0',
description='game for kids',
author='Doudoulolita',
author_email='doudou-lolita@hotmail.fr',
url='http://oursement-votre.com/document/',
py_modules=['miks_game'],
data_files= DATA+IMAGES
)
Là où ça cloche, c'est que mon fichier setup.py et mon fichier miks_game.py font appel à des fonctions de récupération du chemin du dossier data qui ne fonctionnent plus dans ces conditions:
epn13@epn13-desktop:/usr/share/pyshared$ python /usr/share/pyshared/miks_game.py/usr/share/pyshared/
data/
Traceback (most recent call last):
File "/usr/share/pyshared/miks_game.py", line 34, in <module>
listfichier = get_files_by_date(chemincomplet)
File "/usr/share/pyshared/miks_game.py", line 26, in get_files_by_date
files = [(os.stat(directory+'/'+f)[ST_CTIME], f) for f in os.listdir(directory) if os.path.isfile(directory+'/'+f)]
OSError: [Errno 2] No such file or directory: '/usr/share/pyshared/data'
On voit avec ce code qu'il cherche le dossier data dans pyshared et non dans usr où il s'est rangé automatiquement. 🙁
Et piree, si je me mets dans un autre répertoire que pyshared, il cherche dans le répertoire où je me trouve ! :mad:
En fait, ce serait bien que tout se range gentiment dans un dossier miksgame au sein de pyshared au lieu d'aller un peu dans tous les coins ! Je suppose que data_files permet de faire ça mais je ne sais pas trop comment.
Je continue mes recherches !