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.

#1 Le 01/06/2007, à 18:17

vectron

Petite base de données en Python avec GARFLY

Salut,
je cherche à réaliser une application simple de base de données en médecine.
Mon problème est simple : sur les PC du CHU qui fonctionne sous FENETRE XP, je voudrais faire tourner mon application (que j'aurais écrit sous linux au début puis compilée pour FENETRE XP) sans que cela nécessite d'installation. Car le service informatique a bien sur bloqué la possibilité d'installer soi même des logiciel. Par contre je peu trés bien copier un programme dans un dossier.
Donc avec pyhton et gardfly vais je pouvoir installer cela par un simple copier coller ou me retrouver dans l'impossiblité d'installer quoi que ce soit ?
Sinon puis je me passer de GARDFLY pour une petite base de données (moins de 1000 entrées) ?

Merci à tous.:P


Les pepites de Doc Brown : http://pepites80.blogspot.com/ - les années 80.

Hors ligne

#2 Le 01/06/2007, à 18:48

Imagine

Re : Petite base de données en Python avec GARFLY

Si python n'est pas installé sur les XP, ton programme va avoir du mal à tourné tongue

Pour une base de donnée, il y a OpenOffice base ce sera plus facile de faire passer l'installation de OOo que de python. lol

Hors ligne

#3 Le 01/06/2007, à 21:12

vectron

Re : Petite base de données en Python avec GARFLY

J'ai pourtant deja utiliser une programme écrit en python et rendu executable sous XP sans que python soit installer ...


Les pepites de Doc Brown : http://pepites80.blogspot.com/ - les années 80.

Hors ligne

#4 Le 01/06/2007, à 21:39

aleph

Re : Petite base de données en Python avec GARFLY

> vectron

Ecoute bien ce qui suit,

A partir de Python 2.5, Python contient par défaut la base de donnée SQlite (version 3). Elle est intégrée à l'ensemble Python. Il n'est par conséquent pas nécessaire d'installer la base de données, le module d'interface api est disponible automatiquement (c'est un module de type built-in). Pour finir, la documentation officielle livrée en standard avec Python pour Win contient une documentation sur les API de l'interface (ch.13.13)

Aujourd'hui, sauf pour des raisons de compatibilité ascendante, Gadfly n'a plus beaucoup de sens.


> J'ai pourtant deja utiliser une programme écrit en python et rendu executable sous XP sans que python soit installer ...

Oui, ce n'est pas à proprement parler un éxécutable. Des exemples sont ici, http://spinecho.ze.cx/
Parmi ceux-ci, se trouve, psi, un shell Python pour Windows qui fonctionne sans que Python soit installé.

#5 Le 01/06/2007, à 21:51

aleph

Re : Petite base de données en Python avec GARFLY

Un oubli...

> Car le service informatique a bien sur bloqué la possibilité d'installer soi même des logiciel. Par contre je peu trés bien copier un programme dans un dossier.

Aucun problème, tu peux installer Python en mode administrateur ou dans ton arborescence utilisateur. Dans ce dernier cas, pour la recherche des modules, c'est sys.path qui prend le dessus sur la variable d'environnement PATH du mode administrateur.

#6 Le 02/06/2007, à 00:41

big_foot

Re : Petite base de données en Python avec GARFLY

ça me fait frémir de savoir que dans un hopital, un type va installer une petite base de donnée qui va fonctionner un jour et puis peut-être pas le lendemain et que ce truc pourrait lui servir en tant que médecin ou infirmier.
J'ose espérer que c'est simplement la base de donnée de ses conquêtes et pas celle de ses patients!!!! :=)

Hors ligne

#7 Le 02/06/2007, à 09:52

vectron

Re : Petite base de données en Python avec GARFLY

big_foot a écrit :

ça me fait frémir de savoir que dans un hopital, un type va installer une petite base de donnée qui va fonctionner un jour et puis peut-être pas le lendemain et que ce truc pourrait lui servir en tant que médecin ou infirmier.
J'ose espérer que c'est simplement la base de donnée de ses conquêtes et pas celle de ses patients!!!! :=)

je ne comprend pas ton inquiétude .:|.. cela va être en effet une base de données de patient (si c était pour mes conquètes alors il me faudrait une base beaucoup plus importante. Ces données sur ma vie seraient en plus beaucoup trop importante pour quelles circulent sur un reseau.)


http://dosimple.ch/articles/Python-PyQt/
et a ette adresse j ai trouve un programme ecrit puis compile pour windows qui semble marcher sans python donc contrairement a ce que vous me dites cela semble fonctionner très bien une fois compilé:P


Les pepites de Doc Brown : http://pepites80.blogspot.com/ - les années 80.

Hors ligne

#8 Le 02/06/2007, à 11:00

Imagine

Re : Petite base de données en Python avec GARFLY

vectron a écrit :

cela va être en effet une base de données de patient

Les fichiers nominatifs sont règlementés en France, tu risques d'avoir des problèmes  avec la CNIL en fonction des infos que tu mets dedans tongue

Python est un langage interprété et orienté objet

Pour fonctionner, ton programme a besoin d'un interpréteur, il est peut-être implémenté d'origine sous win, je n'est jamais testé. Tu peux toujours récupérer le carnet d'adresse de ton lien et vérifier si ça fonctionne en l'installant dans ton dossier, tu seras fixé smile

Dernière modification par Imagine (Le 02/06/2007, à 11:00)

Hors ligne

#9 Le 02/06/2007, à 15:04

aleph

Re : Petite base de données en Python avec GARFLY

Que ce soit l'un ou l'autre, vous butez sur le mode de fonctionnement de Python qui est le même sous toutes les plateformes (linux, BSD, Windows ou OS X).

Aucun reproche ici, j'ai aussi été débutant. J'insiste sur ce point.

> Imagine

> Python est un langage interprété
Oui

> orienté objet
Ce n'est pas correct. Il faudrait dire aussi orienté objet. Python propose aussi la programmation procédurale avec un soupçon de programmation fonctionnelle. Le tout est de savoir quand il est préférable d'utiliser tel ou tel mode ou une mélange des deux.

> Pour fonctionner, ton programme a besoin d'un interpréteur
Toujours. Le hic est que l'interpréteur peut être implémenté de diverses façons. Voir mon commentaire pour vectron plus bas.

> il est peut-être implémenté d'origine sous win
Non

> Tu peux toujours récupérer le carnet d'adresse de ton lien et vérifier si ça fonctionne en l'installant dans ton dossier, tu seras fixé
Je l'ai fait sous w2k. La version "standalone" fonctionne sans problème, la version "script" ne fonctionne pas. Dans les deux cas, c'est tout à fait logique et je pourrais expliquer les causes.

> vectron

> ... et a ette adresse j ai trouve un programme ecrit puis compile pour windows qui semble marcher sans python donc contrairement a ce que vous me dites cela semble fonctionner très bien une fois compilé

Ce n'est pas une vision correcte. Le programme n'est pas compilé. La version standalone a été créée avec l'outil py2exe, http://www.py2exe.org/. L'auteur de l'application mentionne avec justesse la version "standalone".

En deux mots le principe de fonctionnement de py2exe.
py2exe, un utilitaire pour les plateformes Windows, crée dans un répertoire une mini distribution de Python destinée à exécuter les scripts Python que l'auteur veut bien faire exécuter. Ce répertoire contient les scripts à exécuter, l'interpréteur Python et, éventuellement les librairies tierces qui gèrent l'interface (dans le cas cité, les bibliothèques Qt). Par différents mécanismes, la plupart de ces librairies se trouvent dans une fichier zip.
L'astuce réside dans le fait que l'interpréteur Python n'est pas un programme exécutable, mais une bibliothèque. Le script Python est par conséquent toujours interprété. Le but du fichier .exe (app.exe dans ton exemple) n'est pas de contenir le code à exécuter, mais uniquement d'amorcer l'interpréteur qui à son tour interprétera les scripts. C'est ce mécanisme qui explique la petite taille de l'exécutable, par ex. 21 kb pour app.exe.

Il existe différentes façons de "paqueter" tout le matériel nécessaire à l'exécution de l'application. C'est cette opacité que gêne dans la compréhension du fonctionnement d'une applications "standalone".

Cet aspect est nettement plus visible dans l'application psi, mentionnée dans mon autre message, http://spinecho.ifrance.com/psi.html.
Une fois le "standalone" dépaqueté dans un dossier, ce dossier contient en gros les fichiers suivants :
psi.exe : l'amorce, 18 kb
python25.dll : l'interpréteur Python sous forme de bibliothèque.
wx*.dll : les bibliothèques de l'interface graphique (ici, wxPython)
library.zip : un fichier contenant des bibliothèques "pure Python" (utiles au bon fonctionnement de l'application).
et quelques autres : sans explication, ici.

Dans le cas de l'application proposée par vectron, une partie de ces bibliothèques se situe dans librairy.zip, mais de façon plus désordonnées.

Le cas de psi est un peu spécial, dans le sens où psi est lui-même un interpréteur Python. Un interpréteur Python écrit avec le langage Python.

Avantage et inconvénient
+ Une application créée de cette façon fonctionne sans installation de Python.
+ Entièrement portable.
+ Indépendante des versions de Python
+ Dans le cas de Windows, fonctionne automatiquement sur toutes les plateformes Windows (de 98 à Vista).
+ Assure une grande pérennité des applications.
+ ???

- Un dossier volumineux. (Quoique que 17 Mb pour un environnement Python complet dans le cas de psi, soit supportable).
- ???

Il existe d'autres outils que py2exe que ce soit pour Windows ou pour différentes plateformes. py2exe est peut-être le plus populaire.

Il est clair que je suis ouvert à d'autres questions. Si possible, avant que ce fil de discussion ne tombe pas dans les profondeurs des pages oubliées.

#10 Le 04/06/2007, à 22:51

vectron

Re : Petite base de données en Python avec GARFLY

aleph a écrit :

...
En deux mots le principe de fonctionnement de py2exe.
py2exe, un utilitaire pour les plateformes Windows, crée dans un répertoire une mini distribution de Python destinée à exécuter les scripts Python que l'auteur veut bien faire exécuter. Ce répertoire contient les scripts à exécuter, l'interpréteur Python et, éventuellement les librairies tierces qui gèrent l'interface (dans le cas cité, les bibliothèques Qt). Par différents mécanismes, la plupart de ces librairies se trouvent dans une fichier zip.
L'astuce réside dans le fait que l'interpréteur Python n'est pas un programme exécutable, mais une bibliothèque. Le script Python est par conséquent toujours interprété. Le but du fichier .exe (app.exe dans ton exemple) n'est pas de contenir le code à exécuter, mais uniquement d'amorcer l'interpréteur qui à son tour interprétera les scripts. C'est ce mécanisme qui explique la petite taille de l'exécutable, par ex. 21 kb pour app.exe. ...

Grand merci, tu vient d'éclaircir mon esprit de débutant sous python. Je n'avais noté qu'en fait le programme emportait avec lui un interpréteur. Mais comme cela fonctionne plutot bien je suis rassuré et preneur de cette option pour FENETRE XP.

En tout cas vous avez su répondre à mes questions.

Je rassure aussi BIG FOOT, je ne laisserai pas trainer ces fichiers, ils seront vite vendu à des assurances ou des laboratoire pharmaceutiques.:D


Les pepites de Doc Brown : http://pepites80.blogspot.com/ - les années 80.

Hors ligne

#11 Le 05/06/2007, à 11:18

aleph

Re : Petite base de données en Python avec GARFLY

> vectron
> Je n'avais noté qu'en fait le programme emportait avec lui un interpréteur.

Paradoxalement, la librairie "intépreteur" est absente de l'application "standalone". C'est un pur hasard et par un autre mécanisme que l'application fonctionne...

Pour les ubunteros

Par amusement, j'ai écrit une interface graphique de l'application "Carnet d'adresse" sous wxPython, la rendant plus "native"Ubuntu/GNOME.
addressbook.zip, Quick links à http://spinecho.ze.cx/

L'application GTK sous KDE 3.5. : http://mitglied.lycos.de/drpy/adrbook.png

#12 Le 06/06/2007, à 14:28

vectron

Re : Petite base de données en Python avec GARFLY

Merci pour tout ces renseignement ...
Dans un même ordre d'idée, peut-on porter ces apllications sous PALM avec un équivalent de PY2EXE pour palm OS ?

Quel est pour toi le meilleur : TKINTER OU WXPYTHON ? (j'ai nue petite idée)
Connais tu un bon tuto pour WXPYTHON en francais?
Quel concepteur d'interface utilises tu ?

Merci:D


Les pepites de Doc Brown : http://pepites80.blogspot.com/ - les années 80.

Hors ligne

#13 Le 06/06/2007, à 18:47

aleph

Re : Petite base de données en Python avec GARFLY

> Dans un même ordre d'idée, peut-on porter ces apllications sous PALM avec un équivalent de PY2EXE pour palm OS ?
Pas à ma connaissance.

> Quel est pour toi le meilleur : TKINTER OU WXPYTHON ? (j'ai nue petite idée)
Question piège et probablement un petite idée fausse.
pyQt et wxPython : actuellement, les deux seuls "toolkits" graphiques dignes de ce nom pour Python.
TkInter : pour être court, très utile et se justifie.
+ quelques autres...

> Connais tu un bon tuto pour WXPYTHON en francais?
Non. Je bosse en anglais et je ne me suis jamais préoccupé de la chose.

> Quel concepteur d'interface utilises tu ?
Aucun. Un éditeur, mes 10 doigts et mes connaissances.