开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
python3.7.4
/
Doc
/
library
/
pkgutil.rst
python3.7.4
/
Doc
/
library
/
pkgutil.rst
pkgutil.rst 8.53 KB
一键复制 编辑 原始数据 按行查看 历史
zhangweibo 提交于 2021年11月17日 13:49 +08:00 . git init

:mod:`pkgutil` --- Package extension utility

.. module:: pkgutil
 :synopsis: Utilities for the import system.

Source code: :source:`Lib/pkgutil.py`


This module provides utilities for the import system, in particular package support.

A namedtuple that holds a brief summary of a module's info.

.. versionadded:: 3.6
.. function:: extend_path(path, name)

 Extend the search path for the modules which comprise a package. Intended
 use is to place the following code in a package's :file:`__init__.py`::

 from pkgutil import extend_path
 __path__ = extend_path(__path__, __name__)

 This will add to the package's ``__path__`` all subdirectories of directories
 on ``sys.path`` named after the package. This is useful if one wants to
 distribute different parts of a single logical package as multiple
 directories.

 It also looks for :file:`\*.pkg` files beginning where ``*`` matches the
 *name* argument. This feature is similar to :file:`\*.pth` files (see the
 :mod:`site` module for more information), except that it doesn't special-case
 lines starting with ``import``. A :file:`\*.pkg` file is trusted at face
 value: apart from checking for duplicates, all entries found in a
 :file:`\*.pkg` file are added to the path, regardless of whether they exist
 on the filesystem. (This is a feature.)

 If the input path is not a list (as is the case for frozen packages) it is
 returned unchanged. The input path is not modified; an extended copy is
 returned. Items are only appended to the copy at the end.

 It is assumed that :data:`sys.path` is a sequence. Items of :data:`sys.path`
 that are not strings referring to existing directories are ignored. Unicode
 items on :data:`sys.path` that cause errors when used as filenames may cause
 this function to raise an exception (in line with :func:`os.path.isdir`
 behavior).


If dirname is a string, a PEP 302 finder is created that searches the current :data:`sys.path`, plus any modules that are frozen or built-in.

Note that :class:`ImpImporter` does not currently support being used by placement on :data:`sys.meta_path`.

.. deprecated:: 3.3
 This emulation is no longer needed, as the standard import mechanism
 is now fully PEP 302 compliant and available in :mod:`importlib`.

:term:`Loader` that wraps Python's "classic" import algorithm.

.. deprecated:: 3.3
 This emulation is no longer needed, as the standard import mechanism
 is now fully PEP 302 compliant and available in :mod:`importlib`.
.. function:: find_loader(fullname)

 Retrieve a module :term:`loader` for the given *fullname*.

 This is a backwards compatibility wrapper around
 :func:`importlib.util.find_spec` that converts most failures to
 :exc:`ImportError` and only returns the loader rather than the full
 :class:`ModuleSpec`.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.

 .. versionchanged:: 3.4
 Updated to be based on :pep:`451`

.. function:: get_importer(path_item)

 Retrieve a :term:`finder` for the given *path_item*.

 The returned finder is cached in :data:`sys.path_importer_cache` if it was
 newly created by a path hook.

 The cache (or part of it) can be cleared manually if a rescan of
 :data:`sys.path_hooks` is necessary.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.


.. function:: get_loader(module_or_name)

 Get a :term:`loader` object for *module_or_name*.

 If the module or package is accessible via the normal import mechanism, a
 wrapper around the relevant part of that machinery is returned. Returns
 ``None`` if the module cannot be found or imported. If the named module is
 not already imported, its containing package (if any) is imported, in order
 to establish the package ``__path__``.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.

 .. versionchanged:: 3.4
 Updated to be based on :pep:`451`


.. function:: iter_importers(fullname='')

 Yield :term:`finder` objects for the given module name.

 If fullname contains a '.', the finders will be for the package
 containing fullname, otherwise they will be all registered top level
 finders (i.e. those on both sys.meta_path and sys.path_hooks).

 If the named module is in a package, that package is imported as a side
 effect of invoking this function.

 If no module name is specified, all top level finders are produced.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.


.. function:: iter_modules(path=None, prefix='')

 Yields :class:`ModuleInfo` for all submodules on *path*, or, if
 *path* is ``None``, all top-level modules on ``sys.path``.

 *path* should be either ``None`` or a list of paths to look for modules in.

 *prefix* is a string to output on the front of every module name on output.

 .. note::

 Only works for a :term:`finder` which defines an ``iter_modules()``
 method. This interface is non-standard, so the module also provides
 implementations for :class:`importlib.machinery.FileFinder` and
 :class:`zipimport.zipimporter`.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.


.. function:: walk_packages(path=None, prefix='', onerror=None)

 Yields :class:`ModuleInfo` for all modules recursively on
 *path*, or, if *path* is ``None``, all accessible modules.

 *path* should be either ``None`` or a list of paths to look for modules in.

 *prefix* is a string to output on the front of every module name on output.

 Note that this function must import all *packages* (*not* all modules!) on
 the given *path*, in order to access the ``__path__`` attribute to find
 submodules.

 *onerror* is a function which gets called with one argument (the name of the
 package which was being imported) if any exception occurs while trying to
 import a package. If no *onerror* function is supplied, :exc:`ImportError`\s
 are caught and ignored, while all other exceptions are propagated,
 terminating the search.

 Examples::

 # list all modules python can access
 walk_packages()

 # list all submodules of ctypes
 walk_packages(ctypes.__path__, ctypes.__name__ + '.')

 .. note::

 Only works for a :term:`finder` which defines an ``iter_modules()``
 method. This interface is non-standard, so the module also provides
 implementations for :class:`importlib.machinery.FileFinder` and
 :class:`zipimport.zipimporter`.

 .. versionchanged:: 3.3
 Updated to be based directly on :mod:`importlib` rather than relying
 on the package internal PEP 302 import emulation.


.. function:: get_data(package, resource)

 Get a resource from a package.

 This is a wrapper for the :term:`loader`
 :meth:`get_data <importlib.abc.ResourceLoader.get_data>` API. The
 *package* argument should be the name of a package, in standard module format
 (``foo.bar``). The *resource* argument should be in the form of a relative
 filename, using ``/`` as the path separator. The parent directory name
 ``..`` is not allowed, and nor is a rooted name (starting with a ``/``).

 The function returns a binary string that is the contents of the specified
 resource.

 For packages located in the filesystem, which have already been imported,
 this is the rough equivalent of::

 d = os.path.dirname(sys.modules[package].__file__)
 data = open(os.path.join(d, resource), 'rb').read()

 If the package cannot be located or loaded, or it uses a :term:`loader`
 which does not support :meth:`get_data <importlib.abc.ResourceLoader.get_data>`,
 then ``None`` is returned. In particular, the :term:`loader` for
 :term:`namespace packages <namespace package>` does not support
 :meth:`get_data <importlib.abc.ResourceLoader.get_data>`.
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/python_sourcecode/python3.7.4.git
git@gitee.com:python_sourcecode/python3.7.4.git
python_sourcecode
python3.7.4
python3.7.4
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /