Quelle serait la meilleure stratégie de structure de répertoire pour partager un module Utilitaires à travers mes projets Python? Comme les modules communs seraient mis à jour avec de nouvelles fonctions, je ne voudrais pas les mettre dans le répertoire d'installation Python.
project1/ project2/ sharedUtils/
3 Réponses :
Faire un package autonome séparé? Et mettez-le dans les packages / sites de votre installation Python? P>
Il y a aussi mon favori personnel en matière de développement de développement: Utilisation de liens symboliques et / ou *. PTH code> fichiers. P>
Comme il existe de nombreuses possibilités ... J'utilise "l'approche Socrate": essayez de faire réfléchir les gens sur les possibilités.
Comment gérez-vous le contrôle de la révision de cette façon? Lorsque vous engagez votre projet, allez-vous également manuellement dans le répertoire des packages de site et faites-vous la même chose?
@ikarampa: Je ne suis pas tout à fait sûr de vous suivre. Pourriez-vous rehrasser et / ou commencer une nouvelle question?
Salut, désolé d'être une douleur! Je pense que ma question est répondue. Juste pour effacer cela: lorsque vous utilisez un package autonome sur les packages / sites, chaque fois que vous commettez le projet, faites-vous aussi comme le module Helper? Depuis qu'ils sont dans différents endroits, comment résolvez-vous? (utilisateur Windows, donc symboldiens no bons ici!)
Si le module d'assistance est un projet seul, il vous appartient de décider que je suppose. Sous Windows, vous pouvez utiliser les fichiers *. PTH code> au lieu de symboles.
Comment structurez-vous ce "paquet autonome" de sorte que. 1) Le projet1 peut utiliser le code dans ShareDutils et 2) ShareDutils peut utiliser un autre code dans ShareDutils. Les espaces de noms d'importation Python ne semblent pas rendre cela possible. Y a-t-il un exemple trivial de cela quelque part?
Supposons que vous ayez ShareDutils / utils_foo code> et
ShareDUTILS / UTILS_BAR code>.
Vous pouvez modifier votre pythonPath pour inclure
ShareDutils code>, puis les importer dans
Project1 code> et
Project2 code> Utilisation
PYTHONPATH=/path/to/sharedUtils:/other/paths
export PYTHONPATH
Désolé mais nouveau à Python, coderiez-vous le chemin complet de PythonPath ou d'utiliser "../"?
@ikarampa, pas de problème. PythonPath nécessite un chemin complet (absolu).
Lorsque vous distribuez votre fichier, vous avez besoin de concaténer tous les utilisateurs dans un répertoire et des importations standard fonctionnera comme normale. Ok l'a eu! Merci
Structure de répertoire: avec les répertoires comme vous l'avez montrée, à partir de foo.py code> à l'intérieur du répertoire code> DIRECT1 code> Peut ajouter le chemin relatif à
ShareDutils code> comme suit: P>
import sys
sys.path.append("../sharedUtils")
import bar