如何通过代码获取python模块的版本号?

时间:2010-08-19 16:55:32

标签: python

我正在尝试获取我使用的特定几个模块的版本号。我可以存储在变量中的东西。

6 个答案:

答案 0 :(得分:59)

使用pkg_resources(setuptools的一部分)。从PyPI安装的任何内容至少都有版本号。不需要额外的包/模块。

>>> import pkg_resources
>>> pkg_resources.get_distribution("simplegist").version
'0.3.2'

答案 1 :(得分:24)

来自Matt的广义回答,执行dir(YOURMODULE)并查找__version__VERSIONversion。大多数模块如__version__,但我认为numpy使用version.version

答案 2 :(得分:7)

我认为这取决于模块。例如,Django有一个可以从django.VERSION获得的VERSION变量,sqlalchemy有一个__version__变量,你可以从sqlalchemy.__version__获得。

答案 3 :(得分:0)

某些模块(例如azure)不提供%some sample x values xdata = rand(1000,1); %some parameters a,b,c a = 2; b = 3; c = 4; %resulting y values + some noise ydata=a*exp(b*xdata)+c+rand(1000,1)*10-5; plot(xdata,ydata,'o') %function to minimize. It returns the sum of squared distances between the polynom and the data. fun = @(coefs) sum((coefs(1)*exp(coefs(2).*xdata)+coefs(3)-ydata).^2); %nonlinear constaint to enforce c+b>a/2, which is the same as -(c+b-a/2)<0 nonlcon = @(coefs)deal(-(coefs(3)+coefs(2)-coefs(1)/2), 0); % lower bounds to enforce b>0 lb = [-inf 0 -inf]; %starting values x0 = [1 1 1]; %finally find the coefficients (which should approximately be the values of a, b and c) coefs = fmincon(fun,x0,[],[],[],[],lb,[],nonlcon) 字符串。

如果使用pip安装软件包,则以下内容应该有效。

__version__

答案 4 :(得分:0)

Python 3.8importlib.metadata开头可以代替pkg_resources,以提取通过pip之类的工具安装的第三方软件包的版本:

from importlib.metadata import version
version('wheel')
# '0.33.4'

答案 5 :(得分:0)

 import sys
 import matplotlib as plt
 import pandas as pd
 import sklearn as skl
 import seaborn as sns

 print(sys.version)
 print(plt.__version__)
 print(pd.__version__)
 print(skl.__version__)
 print(sns.__version__)

上面的代码显示了各个模块的版本: 样本O / P:

3.7.1rc1(v3.7.1rc1:2064bcf6ce,2018年9月26日,14:21:39)[MSC v.1914 32位(Intel)] 3.1.0 0.24.2 0.21.2 0.9.0 (sys显示python版本)