脚本中使用的Python打印版本库
我想知道是否有办法检查python 3.+脚本中使用的所有库的版本 例如:脚本中使用的Python打印版本库,python,module,python-module,Python,Module,Python Module,我想知道是否有办法检查python 3.+脚本中使用的所有库的版本 例如: 导入检查版本#示例 进口boto3 进口numpy 导入时间 进口大熊猫 打印(检查\u版本。所有\u库) #结果 #boto3==1.2 #numpy==2.6 # ... 尝试以下操作: import types def imports(): for name, val in globals().items(): if isinstance(val, types.ModuleType):
导入检查版本#示例
进口boto3
进口numpy
导入时间
进口大熊猫
打印(检查\u版本。所有\u库)
#结果
#boto3==1.2
#numpy==2.6
# ...
尝试以下操作:
import types
def imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
try:
yield val.__name__, val.__version__
except:
yield val.__name__,'no version available for built ins'
list(imports())
这可能对您有所帮助,但您必须使用locals()
或globals()
将模块导入的作用域发送到函数,否则:
这不会退回本地进口产品
非模块导入(如来自x import y的)不会被列出,因为它可以是任何python对象(任何类型、类、函数等的变量)
#检查_version.py
从类型导入模块类型
定义所有_库(范围):
返回[f'{value.\uuuu name.\uuuu}=={getattr(value,“\uuuuu version,\uuuuuuu”,“NA”)}for u,作用域中的值。items()
如果是Instance(值、ModuleType)和value.\uuuuu name\uuuuu!=“内置”]
从检查版本导入所有库
def foobar():
#打印全局导入
对于所有\u库(globals())中的模块\u版本:
打印模块(U版)
#时间=NA
#随机=NA
#打印本地输入
进口PIL
导入系统
对于所有_库中的模块_版本(locals()):
打印模块(U版)
#sys=NA
#PIL=5.1.0
foobar()
这是否回答了您的问题?这回答了你的问题吗?