Dans un système Python pour lequel je développe, nous avons généralement cette structure de module. Ceci permet à notre petit framework de test d'importer facilement test/feature.py et d'exécuter des tests unitaires. Cependant, nous avons maintenant le besoin de certains scripts shell (qui sont écrits en Python):Importations Python: importer un module sans extension .py?
mymodule/
mymodule/scripts/yetanotherfeature.py
mymodule/test/yetanotherfeature.py
yetanotherfeature.py est installé par le module paquet Debian dans/usr/bin. Mais nous ne voulons évidemment pas l'extension .py là. Ainsi, pour que le cadre de test pour être encore en mesure d'importer le module que je dois faire ce lien symbolique thingie:
mymodule/
mymodule/scripts/yetanotherfeature
mymodule/scripts/yetanotherfeature.py @ -> mymodule/scripts/yetanotherfeature
mymodule/test/yetanotherfeature.py
Est-il possible d'importer un module par nom de fichier en Python, ou pouvez-vous penser à un solution plus élégante pour cela?
Quel est le problème avec le lien symbolique? C'est la manière la plus élégante de gérer cela; vous devriez l'utiliser pour le déploiement, aussi./usr/bin/feature est un lien vers /usr/bin/feature.py fonctionne bien en rendant l'implémentation claire. –