Bonjour,
je voudrais ajouter un module perso au dossier standard de Python et accessible comme une bibliothèque standard. Que faut-il faire ?
Bonjour,
je voudrais ajouter un module perso au dossier standard de Python et accessible comme une bibliothèque standard. Que faut-il faire ?
Pour ajouter un module :
Ainsi, pour importer tous les fichiers d'un dossier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 path.append(dossier) __import__(nom_du_module) # Ne pas mettre l'extension dans le nom du module
J'espère que ça pourra vous aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 path.append(dossier) for mod in listdir(dossier):__import__(splitext(mod)[0]) # splitext sépare le nom du fichier de son extension
Cordialement.
Sur linux le placer dans:
/usr/lib/pythonx.y/dist_packages/
Comme le 'bon endroit' est à géométrie variable... pourquoi ne pas prendre le temps de mettre en forme cela pour qu'il soit installé par distutils/easyinstall/...
Tu dois même avoir des trucs comme paster qui créent une arborescence avec tout ce qu'il faut dedans et tu ajoutes tes trucs dedans après.
genre:
paster create -t basic_template
- W
Sous Windows, si c'est un seul module, je le mets habituellement dans C:\PythonXY\Lib\site-packages\.
Si c'est un package (ou un dossier qui contient des modules/packages), je préfère habituellement modifier le search path de Python, en créant dans site-packages un fichier .PTH qui est un fichier texte contenant le(s) chemin(s) du ou des dossier(s) à ajouter au search path).
Bonjour.
Pour ma question en fait non car la manipulation se fera sur un post sépicifique dont l'image sera dupliquée sur d'autres postes.
Tu penses à ce genre de chose : http://diveintopython3.org/packaging.html .
Bonjour,
En fait pour ce qui est des imports je crois que sur tous les OS tu as "sys.path" qui contient la liste de tous les dossiers d import ainsi si les modules sont deja dans un dossier tu as juste a ajouter le chemin absolu de ce dossier dans "sys.path"
et des lors tu peux importer tous les modules dans le dossier "mon_chemin_absolu" par contre si tu veux importer un dossier tout entier, le dossier doit contenir un fichier nomme "__init__.py" pour initialiser le package ou un truc dans le genre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 import sys sys.path.append(mon_chemin_absolu)
@+ et bon code
Oui pour ce qui est de la mécanique utilisée: on fabrique un package "distribuable" via distutils/easy_install...
Mais plutôt que de passer du temps à comprendre et construire arborescence et l'ensemble des fichiers nécessaires pour faire un truc qui marche, on utilise le template basic_template de paster.
Puis:
- on pose son code dans le répertoire qui va bien.
- python setup.py XXXX pour construire le package
- easy_install/pip du package pour qu'il se pose "au bon endroit"
Certes on peut poser le truc à la main dans site-specific... mais vu de toutes les fonctionnalités dont on va disposer pour un investissement en temps de mise en œuvre plus que raisonnable, dommage de poser son truc au burin.
- W
paster est le nom d'une suite d'utilitaires développés par Ian Bicking. Il est assez branché sur l'automatisation d'un certain nombre de taches répétitives autour du déploiement et de la gestion de packages et autres composants.
Si on veut s'amuser à construire avec Python des machins qui dépassent quelques poignées de scripts rangés dans leur hiérarchie de modules, il faut aller vers des plugins/DLL et des composants reliés avec des interfaces plus souples.
Zope est un exemple de réponse/solution à cela.
Je la qualifierait de "moderne" au sens ou c'est comme cela qu'on pensait devoir faire les choses au siècle dernier.
L'approche de Ian B. étant plutôt de réaliser tout ou partie de cela en étendant par l'extension de fonctionnalités existantes plutôt que par une reconstruction du monde.
Elle s'appuie sur des principes architecturaux style DRY et CoC qui ont été poussé par Ruby et Ruby On Rails.
Tout çà pour dire qu'en soulevant le tapis de "paster", tu découvriras peut être un monde intéressant mais plutôt déconcertant....
Mais pour éviter de s'y disperser et garder le focus sur ta préoccupation, lire la présentation de E.Zadié là dessus.
- W
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager