【发布时间】:2015-08-18 17:17:57
【问题描述】:
我正在运行一个交互式 Python shell 并尝试使用“检查”模块查看导入模块的路径。我尝试导入的模块具有使用 SWIG 围绕 C++ API 的 Python 包装器。
下面的 sn-p 显示了我的步骤:
>>> import os
>>> import inspect
>>>
>>> import db
>>> inspect.getfile(db)
'mypath1/lib/db/db.pyc'
>>>
>>> import dart
>>> inspect.getfile(dart)
'mypath2/lib/dart.so'
>>>
我的PYTHONPATH 包含mypath1/lib/db 和mypath2/lib。
我的印象是,为了能够加载模块,解释器需要访问.py 文件,然后调用imp.load_module 来加载所需的共享库(.so 文件)。这是我在db 模块的情况下看到的,该模块在mypath1/lib/db 下有一个db.py 文件。但是,dart 在mypath2/lib 下没有.py 文件。
是否可以像 dart 模块那样导入没有 .py 文件的模块?
【问题讨论】: