如何在 python 中打印 'user imported' 模块名称和版本
how to print 'user imported' module name and version in python
我想在 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 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 指定通过别名导入的模块,我不想这样做。
有没有更好的方法来查看导入的模块版本和名称?
这为您提供了所有导入模块的列表
{value.__name__ for value in globals().values() if inspect.ismodule(value)}
所以它与您使用的类似,但不是在 global() 中使用别名,而是获取模块的实际名称。
请注意,它需要您导入 inspect,因此 inspect
和 builtins
也是列表的一部分
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'}
我想在 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 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 指定通过别名导入的模块,我不想这样做。
有没有更好的方法来查看导入的模块版本和名称?
这为您提供了所有导入模块的列表
{value.__name__ for value in globals().values() if inspect.ismodule(value)}
所以它与您使用的类似,但不是在 global() 中使用别名,而是获取模块的实际名称。
请注意,它需要您导入 inspect,因此 inspect
和 builtins
也是列表的一部分
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'}