Liste de tous les modules qui font partie d'un paquet python?

Est-il un moyen simple pour trouver tous les modules qui font partie d'un paquet python? J'ai trouvé cette ancienne discussion, ce qui n'est pas vraiment concluant, mais j'aimerais avoir une réponse définitive avant que je roule ma propre solution basée sur le système d'exploitation.listdir().

  • Question Bonus: comment importer de la trouvé de modules de bien?
  • Quel est le problème avec la lecture de la source de répertoire? Ce plus d'informations avez-vous besoin? Quel est le problème avec ls (ou dir)?
  • Il y a plus de solutions générales disponibles, les paquets python ne sont pas toujours dans les répertoires du système de fichiers, mais peut également être à l'intérieur de fermetures à glissière.
  • Fermetures à glissière peut être trivialement examiné pour voir le contenu. Je ne comprends pas la question. Ce besoin de plus de renseignements que ce qui est trivialement disponible ordinaire OS techniques? J'espère un peu de clarté quant à ce précieux morceau de l'information est manquante.
  • pourquoi réinventer la roue? Si python acquiert hypermodules en Python 4, pkgutil et mis à jour pour que mon code fonctionne toujours. J'aime utiliser des abstractions qui sont disponibles. L'utilisation évidente de la méthode, il est testé et connu pour le travail. Réimplanter que.. maintenant, vous devez trouver et de travailler autour de chaque coin de cas de vous-même.
  • Ah, ce est tout au sujet de programmatiques découverte des submodules. Le code que j'ai posté vient à partir d'une application qui charge les plugins qui sont submodules pour les plugins paquet -- il n'est pas nécessaire de garder un manuel de l'indice dans le programme, depuis pkgutil la liste des plugins disponibles.
  • Ce que l'index du mode d'emploi? Je ne comprends pas la question. Quel est le problème avec ls? Quand je veux savoir les modules dans un paquet, j'ai utiliser ls -r sur le système de fichiers. Ou je décompressez l'œuf et l'utilisation ls -r. Pourquoi est-ce insuffisant? Quoi de plus est nécessaire?
  • Donc, chaque fois que le démarrage de l'application, il va décompresser son propre oeuf si installé à l'intérieur juste pour le vérifier? Veuillez soumettre un patch contre mon projet de réinventer la roue dans cette fonction: git.gnome.org/cgit/kupfer/tree/kupfer/plugins.py#n17. Veuillez considérer à la fois les œufs et normal répertoires, ne pas dépasser 20 lignes.
  • Comment fonctionne "à chaque fois que l'application démarre, il va décompresser son propre oeuf" ont rien à voir avec cette question? Veuillez clarifier cette question. Pourquoi un ls pas suffisant? Merci de se concentrer sur pourquoi, dans cette question, le ls n'est pas adéquate. Je veux seulement des éclaircissements sur le sens de cette question.
  • Êtes-vous demander à propos d'un manuel ls par moi dans la coque, ou réelle os.popen("ls").read() ou pensez-vous vraiment dire os.listdir?
  • ls dans le shell n'est pas adéquate. Le programme doit découvrir lui-même chaque fois que je ou de certains autres dev ajoute un nouveau plugin par l'enregistrement d'un nouveau module (dire new.py) à l'intérieur du plugin sous-paquetage. Le programme affiche une liste de découvert plugins.
  • Pourquoi vous ne comprenez pas que c'est pertinent, c'est quelque chose que vous ne pouvez pas comprendre. La découverte de ce par programme est sur que le application prend de l'intérêt dans le contenu d'un paquet, pas l'utilisateur.
  • Désolé, c'est quelque chose que je ne peux pas comprendre.
  • le programme doit découvrir lui-même chaque fois que je ou de certains autres dev ajoute un nouveau plugin" Qu'est ce que cela a à voir avec la question? Quand j'ai lu la question, presque aucun de ces mots apparaissent. Comment est la question à propos de l'étrange affaire de quelqu'un de l'ajout de composants secrètement?
  • Est-il possible pour vous expliquer quel est le problème à résoudre? Reconnaissez-vous le "détecter les submodules d'un paquet à l'exécution" du cas d'utilisation?
  • Bien sûr, je veux dire par programmation! Sinon, je n'aurais pas mentionné "le déploiement de mon propre solution avec os.listdir()"

InformationsquelleAutor static_rtti | 2009-11-10