如何打印&x27;用户导入';python中的模块名称和版本
我想在colab中打印导入的模块名称和版本如何打印&x27;用户导入';python中的模块名称和版本,python,google-colaboratory,Python,Google Colaboratory,我想在colab中打印导入的模块名称和版本 这是我的密码 import numpy as np ....and so on.... ref_dict = {'pd': 'pandas', 'np': 'numpy', 'sns': 'seaborn', 'plt': 'matplotlib'} as_name =[x for x in set(sys.modules) & set(globals())] as_ref = [ref_dict[x] for x in dir() if x
这是我的密码
import numpy as np
....and so on....
ref_dict = {'pd': 'pandas', 'np': 'numpy', 'sns': 'seaborn', 'plt': 'matplotlib'}
as_name =[x for x in set(sys.modules) & set(globals())]
as_ref = [ref_dict[x] for x in dir() if x in ref_dict.keys()]
module_list= as_name + as_ref
a, na=[], []
print('--module name & versions imported by user--\n')
for name in module_list:
try: a.append('{}: {}'.format(name, sys.modules[name].__version__))
except: na.append('{}: {}'.format(name, 'Not available'))
print(*a,'\n-----\n', *na, sep='\n')
这就是结果
--module name & versions imported by user--
torch: 1.8.0+cu101
re: 2.2.1
tqdm: 4.41.1
sklearn: 0.22.2.post1
numpy: 1.19.5
pandas: 1.1.5
matplotlib: 3.2.2
seaborn: 0.11.1
-----
os: Not available
sys: Not available
__main__: Not available
如上所述,ref_dict指定由alias导入的模块,我不想这样做。是否有更好的方法查看导入的模块版本和名称?这将为您提供所有导入模块的列表
{value.__name__ for value in globals().values() if inspect.ismodule(value)}
因此,它与您正在使用的类似,但不是在global()中使用别名,而是获取模块的实际名称
请注意,它要求您导入inspect,因此inspect
和内置项也属于该列表的一部分
In [1]: import inspect
In [2]: import pandas as pd
In [3]: {value.__name__ for value in globals().values() if inspect.ismodule(value)}
Out[3]: {'builtins', 'inspect', 'pandas'}
谢谢你的回答。无论如何,像“from tqdm.notebook import tqdm”这样的导入不会出现在这段代码中。不是很pythonic,但是module_list=set([x代表set(sys.modules)&set(globals())]+[value.\uu name\uuuuuuuu代表globals()中的值。values()如果inspect.ismodule(value)],这是打印包含tqdm的模块