Существует ли стандартный способ перечислить названия модулей Python в пакете?

Попробуйте передать свои переменные следующим образом:

res.render('page', {params: {param1: 'xxx', param2: 'yyy'}});

И внутри вашего шаблона

#{params.param1}
87
задан DNS 28 January 2009 в 22:04
поделиться

5 ответов

Возможно, это сделает то, что Вы ищете?

import imp
import os
MODULE_EXTENSIONS = ('.py', '.pyc', '.pyo')

def package_contents(package_name):
    file, pathname, description = imp.find_module(package_name)
    if file:
        raise ImportError('Not a package: %r', package_name)
    # Use a set because some may be both source and compiled.
    return set([os.path.splitext(module)[0]
        for module in os.listdir(pathname)
        if module.endswith(MODULE_EXTENSIONS)])
19
ответ дан James Wiseman 5 November 2019 в 15:21
поделиться
import module
help(module)
26
ответ дан Triptych 5 November 2019 в 15:21
поделиться

dir печати (модуль)

-2
ответ дан QueueHammer 5 November 2019 в 15:21
поделиться
def package_contents(package_name):
  package = __import__(package_name)
  return [module_name for module_name in dir(package) if not module_name.startswith("__")]
-2
ответ дан 24 November 2019 в 07:43
поделиться

Используя python2.3 и выше , вы также можете использовать модуль pkgutil :

>>> import pkgutil
>>> [name for _, name, _ in pkgutil.iter_modules(['testpkg'])]
['modulea', 'moduleb']

РЕДАКТИРОВАТЬ: Обратите внимание, что параметр не список модулей, а список путей, поэтому вы можете сделать что-то вроде этого:

>>> import os.path, pkgutil
>>> import testpkg
>>> pkgpath = os.path.dirname(testpkg.__file__)
>>> print [name for _, name, _ in pkgutil.iter_modules([pkgpath])]
179
ответ дан 24 November 2019 в 07:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: