我使用setuptools安装了Python模块construct和statlib:

sudo apt-get install python-setuptools

sudo easy_install statlib
sudo easy_install construct

如何从命令行检查它们的版本?


当前回答

像pycharm-terminal一样去终端

现在编写py或python 并按Enter键。

现在你在终端的python中,你可以尝试这样做:

# import <name_of_the_library>

import kivy

# So if the library has __version__ magic method, so this way will help you

kivy.__version__  # then hit Enter to see the version

# Output >> '2.1.0'

但如果上面的方法不奏效,你可以试试这种方法,知道信息包括库的版本

 pip show module <HERE PUT THE NAME OF THE LIBRARY>

例子:

pip show module pyperclip

Output:
       Name: pyperclip
       Version: 1.8.2
       Summary: A cross-platform clipboard module for Python. (Only handles plain text for now.)
       Home-page: https://github.com/asweigart/pyperclip
       Author: Al Sweigart
       Author-email: al@inventwithpython.com
       License: BSD
       Location: c:\c\kivymd\virt\lib\site-packages
       Requires:
       Required-by:

还有一种方法可以帮助你在项目中显示所有的库和它们的版本:

pip freeze
# I used the above command in a terminal inside my project this is the output
       certifi==2021.10.8
       charset-normalizer==2.0.12
       docutils==0.18.1
       idna==3.3
       Kivy==2.1.0
       kivy-deps.angle==0.3.2
       kivy-deps.glew==0.3.1
       kivy-deps.sdl2==0.4.5
       Kivy-Garden==0.1.5
       kivymd @ file:///C:/c/kivymd/KivyMD
       Pillow==9.1.0
       Pygments==2.12.0
       pyperclip==1.8.2
       pypiwin32==223
       pywin32==303
       requests==2.27.1
       urllib3==1.26.9

当然,您可以尝试使用下面的命令来显示所有库及其版本

pip list

希望能帮助到大家, 问候

其他回答

我建议在终端中打开一个Python shell(在您感兴趣的Python版本中),导入库,并获取其__version__属性。

>>> import statlib
>>> statlib.__version__

>>> import construct
>>> contruct.__version__

注1:我们必须考虑Python版本。如果已经安装了不同版本的Python,则必须在感兴趣的Python版本中打开终端。例如,使用Python 3.8打开终端可以(肯定会)提供与使用Python 3.5或Python 2.7打开不同版本的库。

注意2:我们避免使用print函数,因为它的行为依赖于Python 2或Python 3。我们不需要它,终端将显示表达式的值。

对于未定义字段__version__的情况:

try:
    from importlib import metadata
except ImportError:
    import importlib_metadata as metadata # python<=3.7

metadata.version("package")

或者,就像之前提到的那样:

import pkg_resources
pkg_resources.get_distribution('package').version

使用pip而不是easy_install。

使用pip,通过以下方式列出所有已安装的软件包及其版本:

pip freeze

在大多数Linux系统上,您可以将其输送到grep(或Windows上的findstr),以查找您感兴趣的特定包的行。


Linux:

pip freeze | grep lxml

lxml = = 2.3

窗口:

pip freeze | findstr lxml

lxml = = 2.3


对于单个模块,您可以尝试__version__属性。然而,有一些模块没有它:

python -c "import requests; print(requests.__version__)"
2.14.2

python -c "import lxml; print(lxml.__version__)"

回溯(最近一次调用): 文件"<string>",第1行,在<模块> 'module'对象没有'version'属性

最后,由于您的问题中的命令带有sudo前缀,似乎您正在安装到全局python环境。我强烈建议研究一下Python虚拟环境管理器,例如virtualenvwrapper。

总而言之:

conda list

(它将提供所有的库以及版本细节。)

And:

pip show tensorflow

(它提供了完整的图书馆细节。)

您可以简单地使用子流程。getoutput (python3——版本):

import subprocess as sp
print(sp.getoutput(python3 --version))

# Or however it suits your needs!
py3_version = sp.getoutput(python3 --version)

def check_version(name, version):...

check_version('python3', py3_version)

有关更多信息和不依赖__version__属性的方法:

指定os的输出。系统的一个变量,并防止它显示在屏幕上

你也可以使用subprocess.check_output(),当子进程返回的不是退出码0时,它会引发一个错误:

subprocess—子进程管理