Existe-t-il un moyen de savoir quels modules sont disponibles pour l'importation depuis un package?Comment puis-je trouver les modules disponibles à l'importation dans un package?
Répondre
De nombreux packages incluent une liste appelée __all__
, qui répertorie les modules membres. Ceci est utilisé lorsque python fait from x import *
. Vous pouvez en savoir plus sur ce here.
Si le package ne définit pas __all__
, vous devrez faire quelque chose comme la réponse à une question que j'ai précédemment posée, here.
importation fred
print dir (fred)
Vous avez la source.
Regardez les fichiers dans le répertoire du paquet. Ces modules sont disponibles pour l'importation.
Il existe plusieurs façons d'avoir des fichiers à l'intérieur du paquet (un répertoire) qui ne sont * pas * des modules disponibles pour l'importation. Le mécanisme d'importation Python connaît la différence, il semble donc raisonnable d'exposer cette fonctionnalité plutôt que de la réinventer. – bignose
Inventer? Inventer quoi? Lis juste la source. –
dir ([objet]);
Sans arguments, dir() renvoie la liste des noms dans la portée locale actuelle. Avec un argument, essayez de renvoyer une liste d'attributs valides pour cet objet.
Ainsi, dans le cas d'un module, comme 'sys':
>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
C'est tout ce qu'il ya à faire.
Cela liste tous les attributs, pas seulement les sous-modules, donc il ne répond pas à la question. – bignose
- 1. Comment trouver les ports COM disponibles?
- 2. Comment puis-je dire à CPAN.pm où trouver les modules?
- 3. Comment trouver les modules d'extensions compilés en numpy
- 4. Py2App Impossible de trouver les modules standard
- 5. Comment reconnaître les classes enregistrées dans un package Delphi
- 6. Comment trouver tous les chemins de labyrinthe disponibles?
- 7. Quels modules python sont disponibles pour aider à la démonisation dans la bibliothèque standard?
- 8. Comment utiliser les modules EXSLT dans XMLSpy?
- 9. Comment configurer un package à l'échelle du système dans osgi?
- 10. Erreur VBA avec les modules: 'impossible de trouver le module'
- 11. Trouver la liste des versions disponibles dans un dépôt Maven pour un plugin spécifique?
- 12. Comment trouver les dates affichées dans un contrôle Silverlight Calendar?
- 13. Obtention d'une liste de tous les modules du package en cours
- 14. Problème avec les modules Python
- 15. Comment partager un fichier de filtre parmi les modules Maven2?
- 16. Comment puis-je dire à CPAN.pm d'installer tous les modules dans un répertoire spécifique?
- 17. Création de plusieurs modules Python dans différents répertoires partageant une partie de la structure du package
- 18. Comment obtenir les traductions disponibles depuis un DLL
- 19. Imprimer toutes les variables disponibles dans un modèle Smarty
- 20. Comment obtenir dynamiquement les modules imbriqués à partir d'un objet?
- 21. OCaml: Définir les modules
- 22. Comment exécuter un package SSIS à partir de .NET?
- 23. Comment récupérer les branches disponibles à partir d'un référentiel Bitbucket?
- 24. Rassemble tous les modules Python utilisés dans un dossier?
- 25. Rassemble tous les modules Python utilisés dans un dossier?
- 26. comment les modules peuvent être liés
- 27. Comment vérifier les ressources externes sont disponibles
- 28. Comment utiliser les modules avec Zend_Application?
- 29. Comment créer un package pour différents fichiers?
- 30. comment accéder à l'élément package explorer dans le plugin eclipse
Cette liste répertorie tous les attributs, pas seulement les sous-modules, donc elle ne répond pas à la question. – bignose