我使用setuptools安装了Python模块construct和statlib:
sudo apt-get install python-setuptools
sudo easy_install statlib
sudo easy_install construct
如何从命令行检查它们的版本?
我使用setuptools安装了Python模块construct和statlib:
sudo apt-get install python-setuptools
sudo easy_install statlib
sudo easy_install construct
如何从命令行检查它们的版本?
当前回答
在Python 3中用括号括起来的print:
>>> import celery
>>> print(celery.__version__)
3.1.14
其他回答
这个答案是为Windows用户准备的。正如在所有其他答案中建议的那样,你可以这样使用语句:
import [type the module name]
print(module.__version__) # module + '.' + double underscore + version + double underscore
但是,有一些模块即使在使用上面的方法后也不打印它们的版本。所以,你可以简单地做:
Open the command prompt. Navigate to the file address/directory by using cd (file address) where you've kept your Python and all supporting modules installed. If you have only one Python interpreter on your system, the PyPI packages are normally visible in the directory/folder: Python → Lib → site-packages. use the command "pip install [module name]" and hit Enter. This will show you a message as "Requirement already satisfied: file address\folder name (with version)". See the screenshot below for example: I had to know the version of a pre-installed module named "Selenium-Screenshot". It correctly showed as 1.5.0:
你可以试试这个:
pip list
这将输出所有包及其版本。
输出
使用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。
在搜索了互联网之后,试图弄清楚如何确保我正在运行的模块的版本(显然是python_is_terrible . exe)。__version__在Python 2中不是一个东西?)从字面上看,这些答案都不适用于我的场景……
然后我想了一会儿,意识到基本原理……失败30分钟后…
假设模块已经安装并且可以导入
Python 3.7
>>> import sys,sqlite3
>>> sys.modules.get("sqlite3").version
'2.6.0'
>>> ".".join(str(x) for x in sys.version_info[:3])
'3.7.2'
Python 2.7
>>> import sys,sqlite3
>>> sys.modules.get("sqlite3").version
'2.6.0'
>>> ".".join(str(x) for x in sys.version_info[:3])
'2.7.11'
字面上就是这样…
你可以试试
>>> import statlib
>>> print statlib.__version__
>>> import construct
>>> print contruct.__version__
这是PEP 396推荐的方法。但是PEP从未被接受,并且一直被推迟。事实上,Python核心开发人员似乎越来越支持不包含__version__属性,例如在Remove importlib_metadata.version..