yangbao001 2021-07-10 21:44 采纳率: 100%
浏览 22
已采纳

无法查看python的导入的文件在哪里

在importlib模块中,有个__init__.py文件,这个文件下有个导入模块的代码如下:

import _frozen_importlib as _bootstrap

我找不到涉及__frozen_importli的代码在哪里,我尝试过在pycharm里按住Ctrl单击或者选中后按Ctrl+B都不好使,提示:connot find declaration to go to。我不知道这涉及到了什么知识。
局部完整代码如下:

import _imp  # Just the builtin component, NOT the full Python module
import sys

try:
    import _frozen_importlib as _bootstrap
except ImportError:
    from . import _bootstrap
    _bootstrap._setup(sys, _imp)
else:
    # importlib._bootstrap is the built-in import, ensure we don't create
    # a second copy of the module.
    _bootstrap.__name__ = 'importlib._bootstrap'
    _bootstrap.__package__ = 'importlib'
    try:
        _bootstrap.__file__ = __file__.replace('__init__.py', '_bootstrap.py')
    except NameError:
        # __file__ is not guaranteed to be defined, e.g. if this code gets
        # frozen by a tool like cx_Freeze.
        pass
    sys.modules['importlib._bootstrap'] = _bootstrap
  • 写回答

2条回答 默认 最新

  • blkq 2021-07-10 22:09
    关注

    这个意思是如果本地安装了_frozen_importlib,那么用这个做_bootstrap。
    如果没有的话,就走到except分支,用当前目录的_bootstrap。

    这个是为了兼容性。

    觉得有用,麻烦点个采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月11日
  • 创建了问题 7月10日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同