更新2019-03-14
最后,我自己构建了一个名为^{}的模块,以便在输出中具有更大的灵活性(例如,显示通过其他模块间接导入的模块),并且可以在笔记本之外访问此功能。它可以通过pip install sinfo安装并按如下方式使用:from sinfo import sinfo
sinfo()
它的输出与
^{pr2}$
原始答案
有一个名为version_information的魔术包可以实现这一点。使用pip install version_information安装。(注意这个扩展已经有一段时间没有更新了,最近有一个扩展名为watermark)%load_ext version_information
%version_information pandas, numpy, seaborn
输出:
您也可以使用来自How to list imported modules?的解决方案和!pip freeze来完成类似的任务。在#find the names of the imported modules
import types
def imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
yield val.__name__
#exclude all modules not listed by `!pip freeze`
excludes = ['__builtin__', 'types', 'IPython.core.shadowns', 'sys', 'os']
imported_modules = [module for module in imports() if module not in excludes]
pip_modules = !pip freeze #you could also use `!conda list` with anaconda
#print the names and versions of the imported modules
for module in pip_modules:
name, version = module.split('==')
if name in imported_modules:
print(name + '\t' + version)
输出:pandas 0.16.2
numpy 1.9.2
seaborn 0.5.1
我不知道如何将带有导入模块的列表(例如modulenames)传递给%version_information魔术命令(所有引号都需要去掉),所以也许有人可以通过添加这些信息来改进这个答案。在