我刚安装的Python模块:construct并statlib用setuptools这样的:
# Install setuptools to be able to download the following
sudo apt-get install python-setuptools
# Install statlib for lightweight statistical tools
sudo easy_install statlib
# Install construct for packing/unpacking binary data
sudo easy_install construct
Run Code Online (Sandbox Code Playgroud)
我希望能够(以编程方式)检查他们的版本.是否python --version可以从命令行运行?
我的python版本是2.7.3.
alk*_*lko 624
我建议使用pip代替easy_install.使用pip,您可以列出所有已安装的软件包及其版本
pip freeze
Run Code Online (Sandbox Code Playgroud)
在大多数Linux系统中,您可以通过管道grep来查找您感兴趣的特定包的行:
Linux:
$ pip freeze | grep lxml
lxml==2.3
Windows:
c:\> pip freeze | findstr lxml
lxml==2.3
Run Code Online (Sandbox Code Playgroud)
对于单个模块,您可以尝试该findstr属性,但是有没有它的模块:
$ python -c "import requests; print(requests.__version__)"
2.14.2
$ python -c "import lxml; print(lxml.__version__)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute '__version__'
Run Code Online (Sandbox Code Playgroud)
最后,当您的问题中的命令带有前缀时__version__,您似乎正在安装到全局python环境中.强烈建议您查看python 虚拟环境管理器,例如virtualenvwrapper
dam*_*ois 325
你可以试试
>>> import statlib
>>> print statlib.__version__
>>> import construct
>>> print contruct.__version__
Run Code Online (Sandbox Code Playgroud)
Jak*_*kul 176
使用pkg_resources随setuptools库分发的模块.请注意,传递给get_distribution方法的字符串应与PyPI条目相对应.
>>> import pkg_resources
>>> pkg_resources.get_distribution("construct").version
'2.5.2'
Run Code Online (Sandbox Code Playgroud)
如果你想从命令行运行它,你可以这样做:
python -c "import pkg_resources; print(pkg_resources.get_distribution('construct').version)"
Run Code Online (Sandbox Code Playgroud)
请注意,传递给get_distribution方法的字符串应该是在PyPI中注册的包名,而不是您尝试导入的模块名.
不幸的是,这些并不总是相同的(例如,你这样做pip install memcached,但是import memcache).
0x3*_*bfc 89
我认为这可以帮助但是首先安装show包以便运行pip show然后使用show来查找版本!
sudo pip install show
# in order to get package version execute the below command
sudo pip show YOUR_PACKAGE_NAME | grep Version
Run Code Online (Sandbox Code Playgroud)
sus*_*097 64
更好的方法是:
有关具体包的详细信息
pip show <package_name>
它详细介绍了Package_name,Version,Author,Location等.
$ pip show numpy
Name: numpy
Version: 1.13.3
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: numpy-discussion@python.org
License: BSD
Location: c:\users\prowinjvm\appdata\local\programs\python\python36\lib\site-packages
Requires:
Run Code Online (Sandbox Code Playgroud)
更多细节: >>> pip help
pip 应该更新以执行此操作.
pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
在Windows上,推荐命令是:
python -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
小智 37
在python3中用括号围绕打印
>>> import celery
>>> print(celery.__version__)
3.1.14
Run Code Online (Sandbox Code Playgroud)
wat*_*oof 20
module.__version__ 尝试是一个很好的第一件事,但它并不总是有效.
如果你不想要shell,并且你正在使用pip 8或9,你仍然可以使用pip.get_installed_distributions()从Python中获取版本:
更新: 这里的解决方案适用于PIP 8和9,但在PIP 10的功能已经从移动pip.get_installed_distributions到pip._internal.utils.misc.get_installed_distributions明确表示,这不是外用.如果你使用pip 10+,依靠它不是一个好主意.
import pip
pip.get_installed_distributions() # -> [distribute 0.6.16 (...), ...]
[
pkg.key + ': ' + pkg.version
for pkg in pip.get_installed_distributions()
if pkg.key in ['setuptools', 'statlib', 'construct']
] # -> nicely filtered list of ['setuptools: 3.3', ...]
Run Code Online (Sandbox Code Playgroud)
tas*_*hka 16
以前的答案没有解决我的问题,但这段代码做了:
import sys
for name, module in sorted(sys.modules.items()):
if hasattr(module, '__version__'):
print name, module.__version__
Run Code Online (Sandbox Code Playgroud)
jtu*_*uri 10
使用dir()以找出是否该模块具有__version__的所有属性。
>>> import selenium
>>> dir(selenium)
['__builtins__', '__doc__', '__file__', '__name__',
'__package__', '__path__', '__version__']
>>> selenium.__version__
'3.141.0'
>>> selenium.__path__
['/venv/local/lib/python2.7/site-packages/selenium']
Run Code Online (Sandbox Code Playgroud)
您可以importlib_metadata为此使用库。
如果您使用的是python <3.8,请首先使用以下命令进行安装:
pip install importlib_metadata
Run Code Online (Sandbox Code Playgroud)
从python开始,3.8它已包含在标准库中。
然后,要检查软件包的版本(在本示例中为lxml),请运行:
>>> from importlib_metadata import version
>>> version('lxml')
'4.3.1'
Run Code Online (Sandbox Code Playgroud)
请记住,这仅适用于从PyPI安装的软件包。另外,您必须将包名称作为version方法的参数传递,而不是此包提供的模块名称(尽管它们通常是相同的)。
在 Python 3.8 版本metadata中,importlib包中有一个新模块,它也可以做到这一点。
这是文档中的一个示例:
>>> from importlib.metadata import version
>>> version('requests')
'2.22.0'
Run Code Online (Sandbox Code Playgroud)
这个答案是针对 Windows 用户的。正如所有其他答案中所建议的,您可以将这些语句用作:
\nimport [type the module name]\nprint(module.__version__) # module + \'.\' + double underscore + version + double underscore\nRun Code Online (Sandbox Code Playgroud)\n但是,有些模块即使使用上述方法后也不会打印其版本。因此,您可以简单地执行以下操作:
\n转到终端,如 pycharm-terminal
现在写pyorpython
并按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'
Run Code Online (Sandbox Code Playgroud)
但如果上述方法不适合您可以尝试这种方法来了解信息,包括库的版本
pip show module <HERE PUT THE NAME OF THE LIBRARY>
Run Code Online (Sandbox Code Playgroud)
例子:
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:
Run Code Online (Sandbox Code Playgroud)
还有另一种方法可以帮助您显示项目中的所有库及其版本:
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
Run Code Online (Sandbox Code Playgroud)
确保您可以尝试使用以下命令来显示所有库及其版本
pip list
Run Code Online (Sandbox Code Playgroud)
希望能帮助到大家,问候
如果上述方法不起作用,则值得在python中尝试以下方法:
import modulename
modulename.version
modulename.version_info
Run Code Online (Sandbox Code Playgroud)
请注意,.version除龙卷风之外,还为其他一些人工作过.
小智 6
首先添加python,pip到你的环境变量.这样您就可以从命令提示符执行命令.然后简单地给出python命令.然后导入包
- >import scrapy
然后打印版本名称
- >print(scrapy.__version__)
这肯定会奏效
小智 6
假设我们正在使用Jupyter Notebook(如果使用Terminal,请删除感叹号):
1)如果软件包(例如xgboost)是通过pip安装的:
!pip show xgboost
!pip freeze | grep xgboost
!pip list | grep xgboost
Run Code Online (Sandbox Code Playgroud)
2)如果软件包(例如caffe)与conda一起安装:
!conda list caffe
Run Code Online (Sandbox Code Playgroud)
我建议python在终端中打开一个shell(在你感兴趣的 python 版本中),导入库,并获取它的__version__属性。
>>> import statlib
>>> statlib.__version__
>>> import construct
>>> contruct.__version__
Run Code Online (Sandbox Code Playgroud)
注意1:我们必须考虑python版本。如果我们安装了不同版本的python,我们必须在我们感兴趣的python版本中打开终端。例如,用python3.8can(肯定会)打开终端与用python3.5或打开不同的库版本python2.7。
注意 2:我们避免使用print函数,因为它的行为取决于 python2 或 python3。我们不需要它,终端会显示表达式的值。
小智 5
总之:
conda list
Run Code Online (Sandbox Code Playgroud)
(它将提供所有库以及版本详细信息。)
和:
pip show tensorflow
Run Code Online (Sandbox Code Playgroud)
(它提供了完整的库详细信息。)
| 归档时间: |
|
| 查看次数: |
804786 次 |
| 最近记录: |