Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création d'un paquet pour un programme python

2 réponses
Avatar
Thuban
--17pEHd4RhPHOinZp
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Bonjour,
je cherche =C3=A0 cr=C3=A9er un paquet pour un programme python. J'aimerai =
que =C3=A0
l'installation, des fichiers .pyc soient automatiquement g=C3=A9n=C3=A9r=C3=
=A9s.
J'ai essay=C3=A9 de mettre dans le fichier rules :=20

%:
dh $@ --with python2=20

cependant, les fichiers .pyc ne sont pas cr=C3=A9=C3=A9s.
Quelques explications suppl=C3=A9mentaires. Comme pour gajim, j'ai un
ex=C3=A9cutable dans /usr/bin qui lance le programme python :=20

/usr/bin/monappli :

#!/bin/sh
exec python -OO /usr/share/monappli/monappli.py

dans /usr/share/monappli, j'ai plusieurs fichiers .py dont d=C3=A9pent
monappli.py.

Quelle est la marche =C3=A0 suivre pour "compiler" ces fichiers python?

Merci.

--=20
Thuban
PubKey : http://yeuxdelibad.net/Divers/thuban.pub

--17pEHd4RhPHOinZp
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJVccjOAAoJEIiP8MJUzS8v8HQP/j84lB7ClKZxgQ9vx80MeLCy
vgWaTstwo1AgZEGLsftR229aA5rZhmpyYeDoUuLJ2hOc1kaRHQWer4lTfeveC8Zw
agwwsjGs7fawgJmdqXBqof6CVxq0sItDh1pXnCHF1jPDrXwDHt6JchhaY6a+tgXr
4Fa56Bk5tpyKuG73trlIuW6FJeRzXl0HlWvaQ/+28uiLqjrzxCUCYqRydDyJYftc
jksKidk88ymcag5IIR57qg3OJJMk7Tg1UatyFcgrGHpIvTzcUzEUIf3LhTVdaJUt
O5/H9KKaqmkDZEhH8X5aDl1Qfpwy98Q5G4wLunlYFSsxS7EB/ESAZYe+vFRGo/0e
sQkC/IOxkL7oL4fy5fwBY44bhai3a2ush552k1FB4w3Q8ZJmdVZEtX5TfJqpLhYF
DvgwkxZ2JIHSPuSJgrd158/3QWs4Fe1A6i+89gL92LXtChorb41vS5A8pcqKo7vS
fn/be8a1MrpkT9UGP3GdUNiS7gQ3ICy0AMDG6mNhaNY9h0RMjsK2VNcGcNY6f5Re
Km714Yi3ehQMSEwhL1uhSdjbHp3HWeD40tFzxu/LHMmr8Y+DSZqdG5FrkQoTyb0Y
YjvtrMbTkKJopt4IpKwR3toDRtv+GA1QY+tpqBm0ohC3LxMyE08g97OJ+tnCLHeO
H8os966UnCVW74ocKg+d
=A2Ri
-----END PGP SIGNATURE-----

--17pEHd4RhPHOinZp--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: https://lists.debian.org/20150605160534.GA983@localhost

2 réponses

Avatar
Francois Lafont
Le 05/06/2015 18:05, Thuban a écrit :

je cherche à créer un paquet pour un programme python. J'aimerai que à
l'installation, des fichiers .pyc soient automatiquement générés.



Attention, les fichiers .pyc ne doivent pas être générés dans le
paquet .deb. Ils doivent être générés au moment de l'installation
sur la machine « cible » par le script <paquet>.postinst. Et
normalement, tu n'as pas à t'en préoccuper, les debhelpers (ie les
dh_*) se chargent pour toi d'ajouter les commandes qui-vont-bien
dans le script postinst... à condition tout de même que ton appli
python possède un fichier setup.py « correct ».

J'ai essayé de mettre dans le fichier rules :

%:
dh $@ --with python2



Oui, je crois bien que ça, c'est la bonne pratique pour du python 2.

cependant, les fichiers .pyc ne sont pas créés.
Quelques explications supplémentaires. Comme pour gajim, j'ai un
exécutable dans /usr/bin qui lance le programme python :

/usr/bin/monappli :

#!/bin/sh
exec python -OO /usr/share/monappli/monappli.py

dans /usr/share/monappli, j'ai plusieurs fichiers .py dont dépent
monappli.py.



Ça, par contre, ce n'est pas la bonne pratique je pense. Tout ce qui est
lib python doit se trouver dans des répertoires bien spécifiques. Je ne
sais plus lesquels mais ce n'est pas dans /usr/share/<appli>/. Mais là
aussi, tu te moques de savoir où exactement doivent finir ces lib car les
debhelpers s'en chargent pour toi à nouveau... mais encore une fois à
condition que ton appli possède le fameux setup.py.

Quelle est la marche à suivre pour "compiler" ces fichiers python?



Je crois que ton souci, c'est plus au niveau de l'appli python que
du packaging. Pour résumer, ton fichier rules est correct, et si
tu fabriques un fichier setup.py correct pour ton appli, les debhelpers
te fabriqueront un paquet respectueux de la Debian policy où tes lib
python seront aux bons endroits et où tes .pyc seront générés par le
postinst là où il faut etc. sans que tu aies à te préoccuper de quoi
que ce soit.

Bref, renseigne-toi sur la conception du setup.py pour ton appli
python. J'avoue que c'est pas forcément évidemment dans le sens
où les docs sont loin d'êtres claires (à mon sens). J'en ai fait
un une fois et j'ai un peu tout oublié (désolé).

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/mkt7kg$s81$
Avatar
Thuban
--tjCHc7DPkfUGtrlw
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

* Francois Lafont le [06-06-2015 00:25:19 +0200]:
Le 05/06/2015 18:05, Thuban a écrit :

> je cherche à créer un paquet pour un programme python. J'aime rai que à
> l'installation, des fichiers .pyc soient automatiquement géné rés.

Attention, les fichiers .pyc ne doivent pas être générà ©s dans le
paquet .deb. Ils doivent être générés au moment de l' installation
sur la machine « cible » par le script <paquet>.postinst. Et
normalement, tu n'as pas à t'en préoccuper, les debhelpers (ie les
dh_*) se chargent pour toi d'ajouter les commandes qui-vont-bien
dans le script postinst... à condition tout de même que ton app li
python possède un fichier setup.py « correct ».

> J'ai essayé de mettre dans le fichier rules :
>
> %:
> dh $@ --with python2

Oui, je crois bien que ça, c'est la bonne pratique pour du python 2.

> cependant, les fichiers .pyc ne sont pas créés.
> Quelques explications supplémentaires. Comme pour gajim, j'ai un
> exécutable dans /usr/bin qui lance le programme python :
>
> /usr/bin/monappli :
>
> #!/bin/sh
> exec python -OO /usr/share/monappli/monappli.py
>
> dans /usr/share/monappli, j'ai plusieurs fichiers .py dont dépent
> monappli.py.

Ça, par contre, ce n'est pas la bonne pratique je pense. Tout ce qui est
lib python doit se trouver dans des répertoires bien spécifique s. Je ne
sais plus lesquels mais ce n'est pas dans /usr/share/<appli>/. Mais là  
aussi, tu te moques de savoir où exactement doivent finir ces lib ca r les
debhelpers s'en chargent pour toi à nouveau... mais encore une fois à
condition que ton appli possède le fameux setup.py.

> Quelle est la marche à suivre pour "compiler" ces fichiers python?

Je crois que ton souci, c'est plus au niveau de l'appli python que
du packaging. Pour résumer, ton fichier rules est correct, et si
tu fabriques un fichier setup.py correct pour ton appli, les debhelpers
te fabriqueront un paquet respectueux de la Debian policy où tes lib
python seront aux bons endroits et où tes .pyc seront géné rés par le
postinst là où il faut etc. sans que tu aies à te pré occuper de quoi
que ce soit.

Bref, renseigne-toi sur la conception du setup.py pour ton appli
python. J'avoue que c'est pas forcément évidemment dans le sens
où les docs sont loin d'êtres claires (à mon sens). J'en a i fait
un une fois et j'ai un peu tout oublié (désolé).



En effet, je n'ai pas de setup.py.
Ça me donne une piste d'où chercher, merci beaucoup!

--
Thuban
PubKey : http://yeuxdelibad.net/Divers/thuban.pub

--tjCHc7DPkfUGtrlw
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJVcpbqAAoJEIiP8MJUzS8vVvgP/j7t0WQpi7hFPMDqF4nBMjcQ
/cLY6DgCAfkqFQ0jrQ7NejFapFgDbR35PszRQLfXZpdprzmiU3bptkH4rqPckzSb
eG9e0RqDWv6TTA1Q+SZO6PulV2gLOWJ389zcN3hIarMxWxvGGMZe1MjJWE+aU2vg
odPUmIflr2IbHBAy58PJ2hisgH/ZsVMQgqThwR7TtRF2CmDQnFOWCc3To058d/J2
rINPY53keXLJwfiFS9dkifwXSvXlGRnskjcTcx5mt5uYzj8ud2UNjhFNszXoghTk
vFY0wBJDBeMI3H90FN7a1BKI6R0lzYj07K6qyL6LY4qclPik7GewOfrZT8HxerLA
1MQNlTxwMBSFUoNGlqI550kVXyL4LvjUI6miL4OBJlvpfTHW1+nEDT834UEO7Q9o
Rm6BwnJWXZYNOs7pUjj5HJ8rRilQgBmzv2X9R0Na/fdcFhbLoojR+T1xMyrfhL/i
kVYFSxXX5nmYkg3el9VNPufDIG9fhQHDM+nDYOfZMVwxR1WHr4U6FjQREptBFA3O
BRuGVWvlKnMFgWmxilNCGkIgQ+SanFNLezNWOW0QObB9kQq50w+MHAZhL1i/9dS4
Ir5MJ7/V6YbE2g3AdqVXqt4h9mgk0iL1umqH/lmB0Hs/LmE1qsIOjeNn/cLC4l7f
yyPTtPlscEcDYXH3JYvT
³OL
-----END PGP SIGNATURE-----

--tjCHc7DPkfUGtrlw--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/