Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
脚本中使用的Python打印版本库_Python_Module_Python Module - Fatal编程技术网

脚本中使用的Python打印版本库

脚本中使用的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):

我想知道是否有办法检查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):
            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()

这是否回答了您的问题?这回答了你的问题吗?