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/
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
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![]()
Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
CONTENU D'UNE QUESTION
Exemples:
- Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
- Code source du morceau de programme où il y a un bogue
- Ligne de code sur laquelle le bogue apparaît
- Erreur complète retournée pas l'interpréteur Python
- Recherche déjà effectuée (FAQ, Tutoriels, ...)
- Tests déjà effectués
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
Partager