Importando módulos
******************

Os módulos descritos neste capítulo fornecem novas maneiras de
importar outros módulos Python e hooks para personalizar o processo de
importação.

A lista completa de módulos descritos neste capítulo é:

* "zipimport" --- Import modules from Zip archives

  * "ZipImportError"

  * zipimporter Objects

    * "zipimporter"

      * "create_module()"

      * "exec_module()"

      * "find_spec()"

      * "get_code()"

      * "get_data()"

      * "get_filename()"

      * "get_source()"

      * "is_package()"

      * "load_module()"

      * "invalidate_caches()"

      * "archive"

      * "prefix"

  * Exemplos

* "pkgutil" --- Utilitário de extensão de pacote

  * "ModuleInfo"

  * "extend_path()"

  * "find_loader()"

  * "get_importer()"

  * "get_loader()"

  * "iter_importers()"

  * "iter_modules()"

  * "walk_packages()"

  * "get_data()"

  * "resolve_name()"

* "modulefinder" --- Procura módulos usados por um script

  * "AddPackagePath()"

  * "ReplacePackage()"

  * "ModuleFinder"

    * "report()"

    * "run_script()"

    * "modules"

  * Exemplo de uso de "ModuleFinder"

* "runpy" --- Locating and executing Python modules

  * "run_module()"

  * "run_path()"

* "importlib" --- A implementação de "import"

  * Introdução

  * Funções

    * "__import__()"

    * "import_module()"

    * "invalidate_caches()"

    * "reload()"

  * "importlib.abc" -- classes base abstratas relacionadas a
    importação

    * "MetaPathFinder"

      * "find_spec()"

      * "invalidate_caches()"

    * "PathEntryFinder"

      * "find_spec()"

      * "invalidate_caches()"

    * "Loader"

      * "create_module()"

      * "exec_module()"

      * "load_module()"

    * "ResourceLoader"

      * "get_data()"

    * "InspectLoader"

      * "get_code()"

      * "get_source()"

      * "is_package()"

      * "source_to_code()"

      * "exec_module()"

      * "load_module()"

    * "ExecutionLoader"

      * "get_filename()"

    * "FileLoader"

      * "name"

      * "path"

      * "load_module()"

      * "get_filename()"

      * "get_data()"

    * "SourceLoader"

      * "path_stats()"

      * "path_mtime()"

      * "set_data()"

      * "get_code()"

      * "exec_module()"

      * "load_module()"

      * "get_source()"

      * "is_package()"

    * "ResourceReader"

      * "open_resource()"

      * "resource_path()"

      * "is_resource()"

      * "contents()"

    * "Traversable"

      * "name"

      * "iterdir()"

      * "is_dir()"

      * "is_file()"

      * "joinpath()"

      * "__truediv__()"

      * "open()"

      * "read_bytes()"

      * "read_text()"

    * "TraversableResources"

      * "files()"

  * "importlib.machinery" -- Importadores e ganchos de caminho

    * "SOURCE_SUFFIXES"

    * "DEBUG_BYTECODE_SUFFIXES"

    * "OPTIMIZED_BYTECODE_SUFFIXES"

    * "BYTECODE_SUFFIXES"

    * "EXTENSION_SUFFIXES"

    * "all_suffixes()"

    * "BuiltinImporter"

    * "FrozenImporter"

    * "WindowsRegistryFinder"

    * "PathFinder"

      * "find_spec()"

      * "invalidate_caches()"

    * "FileFinder"

      * "path"

      * "find_spec()"

      * "invalidate_caches()"

      * "path_hook()"

    * "SourceFileLoader"

      * "name"

      * "path"

      * "is_package()"

      * "path_stats()"

      * "set_data()"

      * "load_module()"

    * "SourcelessFileLoader"

      * "name"

      * "path"

      * "is_package()"

      * "get_code()"

      * "get_source()"

      * "load_module()"

    * "ExtensionFileLoader"

      * "name"

      * "path"

      * "create_module()"

      * "exec_module()"

      * "is_package()"

      * "get_code()"

      * "get_source()"

      * "get_filename()"

    * "NamespaceLoader"

    * "ModuleSpec"

      * "name"

      * "loader"

      * "origin"

      * "submodule_search_locations"

      * "loader_state"

      * "cached"

      * "parent"

      * "has_location"

    * "AppleFrameworkLoader"

      * "name"

      * "path"

  * "importlib.util" -- Utility code for importers

    * "MAGIC_NUMBER"

    * "cache_from_source()"

    * "source_from_cache()"

    * "decode_source()"

    * "resolve_name()"

    * "find_spec()"

    * "module_from_spec()"

    * "spec_from_loader()"

    * "spec_from_file_location()"

    * "source_hash()"

    * "_incompatible_extension_module_restrictions()"

    * "LazyLoader"

      * "factory()"

  * Exemplos

    * Importing programmatically

    * Checando se o módulo pode ser importado

    * Importa o arquivo de origem diretamente

    * Implementing lazy imports

    * Setting up an importer

    * Approximating "importlib.import_module()"

* "importlib.resources" -- Leitura, abertura e acesso a recursos de
  pacotes

  * "Anchor"

  * "files()"

  * "as_file()"

  * API funcional

    * "open_binary()"

    * "open_text()"

    * "read_binary()"

    * "read_text()"

    * "path()"

    * "is_resource()"

    * "contents()"

* "importlib.resources.abc" -- Classes base abstratas para recursos

  * "ResourceReader"

    * "open_resource()"

    * "resource_path()"

    * "is_resource()"

    * "contents()"

  * "Traversable"

    * "name"

    * "iterdir()"

    * "is_dir()"

    * "is_file()"

    * "joinpath()"

    * "__truediv__()"

    * "open()"

    * "read_bytes()"

    * "read_text()"

  * "TraversableResources"

    * "files()"

* "importlib.metadata" -- Acessando metadados do pacote

  * Visão Geral

    * "PackageNotFoundError"

  * API funcional

    * Pontos de entrada

      * "entry_points()"

      * "EntryPoints"

      * "EntryPoint"

    * Metadados de distribuição

      * "metadata()"

      * "PackageMetadata"

    * Versões de distribuição

      * "version()"

    * Arquivos de distribuição

      * "files()"

      * "PackagePath"

    * Requisitos de distribuição

      * "requires()"

    * Mapeando importação pra pacotes de distribuição

      * "packages_distributions()"

  * Distribuições

    * "distribution()"

    * "Distribution"

  * Descoberta de distribuição

  * Estendendo o algoritmo de pesquisa

    * Exemplo

* A inicialização do caminho de pesquisa de módulos "sys.path"

  * Ambientes virtuais

  * Arquivos _pth

  * Python embarcado
