OVH Cloud OVH Cloud

Python et les plate-formes

20 réponses
Avatar
Bibi F
Je suis interessé par Python parce-qu'il tourne sous plusieurs plate-formes.
J'ai donc lu tout ce que j'ai pu trouver (le langage, les outils etc..)
Seulement avant de me lancer j'aimerais comprendre un truc que je n'ai pas
trouvé :
comment on crée un programme qui tourne sous toutes les platforms ?
J'ai bien vu py2exe qui permet de créer des exécutables pour windows (avec
des dll et w9xpopen, ce qui me paraît lourd..), mais je n'ai pas trouvé
comment on fait pour Linux ou Mac ?
Est-ce-qu'il faut toujours une console python pour les faire tourner ou bien
est-ce-qu'on peut créer des exécutables simples ?
Merci d'avance pour vos réponses ou vos pistes de lecture

10 réponses

1 2
Avatar
Bibi F
Ok, je vais voir ça dès ce soir et essayer de comprendre. Je débarque dans
un autre monde..
Avatar
R12y
On Thu, 20 Apr 2006 11:02:46 +0200, bruno at modulix wrote:

Commence déjà par écrire un programme


Je suis d'accord.
Mais à partir de quel moment un "programmeur" doit se soucier des "best
practices" ? Notre ami, là, essaie de s'en soucier avant même de
commencer. Dans quelle mesure est-ce "mauvais"?

Le suivi de cette conversation est placé vers
--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Bibi F
D'abord, toutes mes excuses pour ne pas avoir répondu aussitôt, mais je suis
allé me coucher (minuit c'est déjà tard) et dans la journée, je bosse.

Et oui... Tout métier a son jargon - et la programmation est
probablement un des métiers les plus "jargonnant" !-)


Je sais, mais je pensais avoir quelques bases pour me faire comprendre..

Le premier est bien entendu indispensable pour exécuter un programme
Python (de même que la VM Java pour un programme en Java, ou le
'runtime' VB6 pour une appli VB6, etc...).
D'accord. Toutefois, une appli écrite en "delphi" (ou plutôt pascal) peut

tourner sans bibliothèque fournie (mais je sais qu'en réalité elle utilise
toutes les dll windows). En tous cas, pour la distrib, on peut se contenter,
dans un certain nombre de cas, de distribuer un exe simple.

Ce que font des appli comme
py2exe est juste d'"emballer" avec ton appli l'interpréteur et les
bibliothèque nécessaires.
J'avais bien compris ça. Et si j'ai posé la question c'est parce-que

j'essaie de comprendre comment on fait une fois que le programme est terminé
et prêt à être distribué.. Pour windows, on utilise donc py2exe mais pour
les autres je ne comprenais pas.

Le terme de "console" vient de l'époque d'avant les PC, et désigne
originellement un terminal informatique passif. Avec les PC, le terme de
"console" en est venu à désigner les émulateurs de terminaux et les
shells en mode texte, puis, avec l'apparition des environnements
graphiques, la fenêtre accueillant un shell en mode texte.


D'accord, j'étais un peu comme les gens qui ont vaguement compris ce dont on
parle mais qui ont du mal à expliquer parce-qu'en réalité ils confondent
plusieurs notions. Merci donc pour ces précisions.

Je l'avais bien compris - ma question visait à *te* faire te demander si
*tu* avais bien compris de quoi il retournait !-)


Vicieux ;o))

Les ".exe" sont une spécificité DOS/Windows. Accessoirement, une appli
Windows est *très* rarement constituée d'un unique fichier exécutable -
il y a généralement toute une floppée de bibliothèques (.dll) et autres
ressources nécessaires au fonctionnement de l'appli. Pour pas mal de
langages, le '.exe' n'est en fait rien d'autre qu'un "lanceur" -
l'essentiel du code est ailleurs.
Je sais, mais dans un certain nombre de cas, les bibliothèques existent déjà

sous Windows et n'ont pas à être distribuées avec l'exécutable. Il est vrai
que je pense surtout à de petits utilitaires ou à mes programmes..

Sérieusement, tu connais beaucoup d'applis Windows qui soient
constituées d'un seul et unique fichier .exe ? Moi pas...


Moi si, les miens, écrits en delphi..

Quand au fait de lancer une appli "par un double-clic", c'est sans grand
rapport


Là je suis d'accord. C'était juste pour faire simple.

Je l'avais bien compris. Je dirais même que tu connais peu Windows
lui-même...


Ben c'est vrai, si tu me considères comme un programmeur. C'est faux si tu
me considères comme un utilisateur ordinaire. Je n'ai jamais cherché à
comprendre complètement les mystères de Windows, mais j'ai quand même
compris qu'il y a les api derrière beaucoup d'exécutables, qui font le
boulot. Et puis j'ai essayé un peu Linux ( sérieusement et assidument 2
mois), mais il y a 6 ans environ et KDE plantait systématiquement, aussi
j'ai laissé tomber.

Pas d'offense, on est tous passés par là - enfin moi j'y
sois passé, et j'ai eu du mal à m'y retrouver au début !-)


je ne me sens pas vexé, j'ai conscience de mes lacunes et ne demande qu'à
comprendre. :o))

Plus concrètement, je pense que tu t'embêtes pour pas grand chose.
Commence déjà par écrire un programme - en tenant compte des problèmes
de portabilité si tu souhaite qu'il tourne sur d'autres plateformes -,
tu verra le problème du déploiement quand tu aura quelque chose à
déployer.


Tu as peut-être raison, mais si je me renseigne autant auparavant, c'est
parce-que je programme déjà des petites applis en Delphi, depuis longtemps,
après être passé par VB6 et turbo-pascal autrefois. D'autr part, j'ai déjà
écrit des petits scripts (relativement complexes) en php et javaScript..
J'ai lu le cours "python-notes.pdf" presqu'entièrement et le langage m'a
paru très intéressant et je pense pouvoir m'y mettre assez facilement (pour
les choses simples évidemment).
La seule raison qui me ferait passer à Python, c'est l'aspect
multi-plate-formes. Tu comprendras que je me documente correctement sur cet
aspect auparavant car apprendre un nouveau langage c'est un lourd
investissement et beaucoup d'arrachage de cheveux. Comme je n'en ai plus
beaucoup déjà !!

En tous cas, si je n'ai plus de post de votre part, je tiens à vous
remercier d'avoir pris le temps de me répondre et d'avoir eu la patience de
m'expliquer quelques notions.

Avatar
bruno at modulix
Bibi F wrote:
D'abord, toutes mes excuses pour ne pas avoir répondu aussitôt,


Pourquoi ??? C'est usenet ici, tu réponds quand tu veux - et si tu veux !-)

Et oui... Tout métier a son jargon - et la programmation est
probablement un des métiers les plus "jargonnant" !-)


Je sais, mais je pensais avoir quelques bases pour me faire comprendre..



C'est le cas.

Le premier est bien entendu indispensable pour exécuter un programme
Python (de même que la VM Java pour un programme en Java, ou le
'runtime' VB6 pour une appli VB6, etc...).


D'accord. Toutefois, une appli écrite en "delphi" (ou plutôt pascal)


... ou plutôt en ObjectPascal...

peut
tourner sans bibliothèque fournie (mais je sais qu'en réalité elle utilise
toutes les dll windows).


Pas forcément toutes... mais bon.

En tous cas, pour la distrib, on peut se contenter,
dans un certain nombre de cas, de distribuer un exe simple.


Pour des cas simples, oui. Techniquement, cela implique une liaison
statique (tout le code des bibliothèques dont dépend l'appli est injecté
dans le binaire), ce qui conduit à des binaires plus volumineux qu'avec
des bibliothèques partagées, et à la nécessité de recompiler et
redéployer toutes les applis dépendantes en cas par exemple de
correction d'un bug dans une de ces bibliothèques.

Dans la pratique, n'importe quelle appli non-triviale gagne à être
modularisée.

Ce que font des appli comme
py2exe est juste d'"emballer" avec ton appli l'interpréteur et les
bibliothèque nécessaires.


J'avais bien compris ça. Et si j'ai posé la question c'est parce-que
j'essaie de comprendre comment on fait une fois que le programme est terminé
et prêt à être distribué.. Pour windows, on utilise donc py2exe mais pour
les autres je ne comprenais pas.


MacOS X a son propre système de paquetage - qui n'est utile que pour des
applis 'à cliquer' - pour les hommes, les vrais, il y a toujours un bon
vieux shell qui traine !-)

Les ".exe" sont une spécificité DOS/Windows. Accessoirement, une appli
Windows est *très* rarement constituée d'un unique fichier exécutable -
il y a généralement toute une floppée de bibliothèques (.dll) et autres
ressources nécessaires au fonctionnement de l'appli. Pour pas mal de
langages, le '.exe' n'est en fait rien d'autre qu'un "lanceur" -
l'essentiel du code est ailleurs.


Je sais, mais dans un certain nombre de cas, les bibliothèques existent déjà
sous Windows et n'ont pas à être distribuées avec l'exécutable.


A part pour les dll qui constituent l'API Windows, tu ne peux en aucun
cas être sûr de la présence des dll nécessaires sur la machine hôte.

Il est vrai
que je pense surtout à de petits utilitaires ou à mes programmes..

Sérieusement, tu connais beaucoup d'applis Windows qui soient
constituées d'un seul et unique fichier .exe ? Moi pas...


Moi si, les miens, écrits en delphi..



J'ai déjà déployé sous Windows des applis développées en Delphi, et à
peu près aucune qui soit composée d'un seul et unique .exe

NB : je parles bien sûr d'applis d'entreprises (gestion commerciale etc).

(snip)

Je l'avais bien compris. Je dirais même que tu connais peu Windows
lui-même...


Ben c'est vrai, si tu me considères comme un programmeur.


(petit coup d'oeil au nom du ng...)
Bin, on est bien sur un ng consacré à un langage de programmation, et en
train de parler de sujets liés à la programmation, non ?

C'est faux si tu
me considères comme un utilisateur ordinaire. Je n'ai jamais cherché à
comprendre complètement les mystères de Windows, mais j'ai quand même
compris qu'il y a les api derrière beaucoup d'exécutables, qui font le
boulot.


<pedant>
s/api/bibliothèque/

L'API, c'est la liste des symboles (fonctions, constantes etc) exposés
par une bibliothèque et utilisables par les programmes. Le code lui-même
est dans la bibliothèque.
</pedant>

Et puis j'ai essayé un peu Linux ( sérieusement et assidument 2
mois), mais il y a 6 ans environ et KDE plantait systématiquement, aussi
j'ai laissé tomber.


Effectivement, le KDE d'il y a 6 ans était une daube de premier ordre.
<troll>les dernières versions commence à atteindre le niveau de
Windows</troll>

(snip)

Plus concrètement, je pense que tu t'embêtes pour pas grand chose.
Commence déjà par écrire un programme - en tenant compte des problèmes
de portabilité si tu souhaite qu'il tourne sur d'autres plateformes -,
tu verra le problème du déploiement quand tu aura quelque chose à
déployer.


Tu as peut-être raison, mais si je me renseigne autant auparavant, c'est
parce-que je programme déjà des petites applis en Delphi, depuis longtemps,
après être passé par VB6 et turbo-pascal autrefois. D'autr part, j'ai déjà
écrit des petits scripts (relativement complexes) en php et javaScript..
J'ai lu le cours "python-notes.pdf" presqu'entièrement et le langage m'a
paru très intéressant et je pense pouvoir m'y mettre assez facilement (pour
les choses simples évidemment).
La seule raison qui me ferait passer à Python, c'est l'aspect
multi-plate-formes. Tu comprendras que je me documente correctement sur cet
aspect auparavant car apprendre un nouveau langage c'est un lourd
investissement et beaucoup d'arrachage de cheveux. Comme je n'en ai plus
beaucoup déjà !!


Je comprend que tu te renseignes. Je voulais juste te dire de ne pas
t'inquiéter des problèmes de déploiement pour le moment - tant que tu
respectes quelques principes relevant essentiellement du simple bon sens
(utilisation de os et os.path, éviter les extensions ou appels systèmes
spécifiques à une plateforme - ou fournir une solution de remplacement
-, utiliser un GUI Toolkit portable etc), la portabilité n'est pas un
problème.

Pour le reste, dans la pratique, Python n'est pas très difficile à
apprendre (en tous cas les bases - après, c'est un langage de bien plus
haut niveau que Pascal ou VB, et qui permet des choses difficilement
imaginables dans ces langages), et s'avère bien plus utilisable que VB
ou PHP. A vrai dire, même pour du développement spécifique Windows (COM,
ActiveX etc), c'est certainement une bien meilleure solution que VB ou
VC++ - à défaut d'avoir d'aussi beau clickodromes !-)

En tous cas, si je n'ai plus de post de votre part, je tiens à vous
remercier d'avoir pris le temps de me répondre et d'avoir eu la patience de
m'expliquer quelques notions.


Pas de quoi.

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"


Avatar
Eric Brunel
On Fri, 21 Apr 2006 11:01:13 +0200, bruno at modulix
wrote:
Effectivement, le KDE d'il y a 6 ans était une daube de premier ordre.
<troll>les dernières versions commence à atteindre le niveau de
Windows</troll>


Malheureusement... (Désolé, j'ai pas pu m'empêcher. Mais bon, on est
vendredi aussi...)

Comme on dit sur clp, WindowMaker-for-ever'ly yours ;-)
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

Avatar
Méta-MCI
Bonjour !


Désolé, j'ai raté le vendredi.
Alors, j'y vais de mon petit troll :

Je ne suis pas très favorable à "Python sur les plate-formes".
Cela fait un peu trop anorexique. A moins que ce désir ne corresponde à un
refoulement névrotique dû au sur-moi...

Il vaudrait mieux "Python et les belles formes", ou "Python et les blondes à
forte poitrine". La convivialité serait nettement meilleure, et l'attrait
pour le métier de développeur Python en serait renforcé.



Plus sérieusement, quelqu'un aurait-il essayé Python sur S60 ? J'ai
commandé un téléphone, exprès pour ça (un mois de délai). Je connais les
liens (j'ai déjà téléchargé les packages Nokia), mais j'aimerais bien savoir
si ça va être coton, ou non.



@-salutations
--
Michel Claveau
Avatar
R12y
On Sat, 22 Apr 2006 09:53:07 +0200, Méta-MCI wrote:

Plus sérieusement, quelqu'un aurait-il essayé Python sur S60 ? J'ai
commandé un téléphone, exprès pour ça (un mois de délai).


Tu veux bien en commander un deuxième pour moi? C'est a boite qui paie ou
bien, c'est toi personnellement? :-)

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Michel Claveau
Bonjour !

La boîte, et moi, c'est pareil, vu que je suis développeur indépendant,
avec seulement une secrétaire comme personnel salarié.

Pour info, le tél que j'ai choisi, c'est le Nokia E70, avec clavier
AZERTY, GPRS, UMTS, Wifi (appelé WLan), USB, OS séries 60, etc.
('tention, hein ! E70, pas N70). Visible là :
http://www.nokia.fr/index.php?content_idh42#

Mais, il est en retard, et devrait arriver dans un mois environ.



Sinon, d'une manière générale, je n'hésite guère à investir, en
matériel ou en logiciel, dès que ça me semble intéressant. Résultat, je
travaille avec 12 ordinateurs, 3 serveurs, 3 accès Internet, 3
routeurs, 5 imprimantes, etc. Pas mal, pour un seul développeur, non ?

Je seul vrai problème, c'est le temps...

--
@-salutations

Michel Claveau
Avatar
R12y
On Sat, 22 Apr 2006 13:09:44 +0200, Michel Claveau wrote:
Sinon, d'une manière générale, je n'hésite guère à investir, en
matériel ou en logiciel, dès que ça me semble intéressant. Résultat, je
travaille avec 12 ordinateurs, 3 serveurs, 3 accès Internet, 3
routeurs, 5 imprimantes, etc. Pas mal, pour un seul développeur, non ?


Peut-on avoir une adresse pour te joindre en privé?
Avec autant de matériel, tu ne dois pas l'utiliser tout le temps, moi j'ai
un peu de temps et pas assez de matériel. Il doit bien y avoir un moyen de
s'arranger...

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Méta-MCI
Salut !

J'ai reçu ton mail privé.
Je vais y répondre tout à l'heure...

@+

MCI
1 2