欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python獲取版本信息的方法與第三方庫總結(jié)

 更新時間:2025年11月08日 09:17:00   作者:呆萌的代Ma  
這篇文章主要為大家詳細介紹了python獲取版本信息的方法與第三方庫,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解下

運行如下代碼即可:

print(get_python_base_version())
print(get_python_site_packages())

當前版本信息

獲取當前的版本信息如下:

def get_python_base_version():
    """獲取python版本信息"""
    version_dict = {
        "Python版本": sys.version,
        "Python解釋器路徑": sys.executable,
        "版本詳細信息": sys.version_info,
    }
    return version_dict

獲取所有第三方庫

獲取全部的第三方庫:

def get_python_site_packages():
    # 查看Python的包搜索路徑
    logger.debug("Python包搜索路徑:")
    _packet_path: dict = {"第三方庫": {}, '搜索路徑': sys.path}
    try:
        # 獲取所有已安裝的包
        distributions = list(importlib.metadata.distributions())
        distributions.sort(key=lambda dist: dist.metadata["Name"].lower() if dist.metadata["Name"] else "")
        # 獲取site-packages路徑
        site_packages_paths = []
        try:
            site_packages_paths = site.getsitepackages()
        except:
            site_packages_paths = [p for p in sys.path if 'site-packages' in p]

        user_site_packages = site.getusersitepackages()
        all_third_party_paths = site_packages_paths + [user_site_packages]

        displayed_packages = set()  # 避免重復(fù)顯示

        for dist in distributions:
            package_name = dist.metadata["Name"]
            if not package_name or package_name in displayed_packages:
                continue

            displayed_packages.add(package_name)
            # 直接檢查dist的路徑屬性
            dist_location = None
            try:
                # 對于某些版本的importlib.metadata,可以直接獲取路徑
                if hasattr(dist, '_path'):
                    dist_location = str(dist._path.parent)
            except:
                pass
            # 如果無法直接獲取,嘗試通過文件推斷
            if not dist_location and dist.files:
                for file in dist.files:
                    if file.parent:
                        file_path = str(file.parent)
                        for third_party_path in all_third_party_paths:
                            if third_party_path in file_path:
                                dist_location = third_party_path
                                break
                    if dist_location:
                        break
            # 如果在第三方包路徑中,則顯示
            if dist_location and any(tp_path in dist_location for tp_path in all_third_party_paths):
                _packet_path["第三方庫"][package_name] = dist_location
    except Exception as e:
        logger.error(f"獲取包信息時出錯: {e}")
    return _packet_path

方法補充

使用sys.version_info獲取結(jié)構(gòu)化版本信息

sys.version_info 返回一個命名元組( sys.versioninfo ),其中包含主版本號、次版本號、微版本號、發(fā)布狀態(tài)和構(gòu)建序號。該元組可以通過索引或命名屬性訪問。

示例代碼:

import sys
 
print(sys.version_info)

輸出示例:

sys.version_info(major=3, minor=11, micro=4, releaselevel='final', serial=0)

逐行解釋與參數(shù)說明:

  • print(sys.version_info) :打印結(jié)構(gòu)化版本信息;
  • major :主版本號;
  • minor :次版本號;
  • micro :微版本號;
  • releaselevel :發(fā)布狀態(tài),如 ‘alpha’、’beta’、’final’;
  • serial :構(gòu)建序號,用于區(qū)分同一版本的不同構(gòu)建。

由于 sys.version_info 是結(jié)構(gòu)化的數(shù)據(jù),因此非常適合用于版本比較、條件判斷等邏輯處理。

使用sys.version獲取完整版本字符串

sys.version 返回一個字符串,表示當前 Python 解釋器的完整版本信息。其內(nèi)容通常包括:

  • 主版本號;
  • 次版本號;
  • 微版本號;
  • 構(gòu)建信息(編譯時間、編譯器版本等);
  • 解釋器類型(如 CPython、PyPy 等)。

示例代碼:

import sys
 
print(sys.version)

輸出示例:

3.11.4 (tags/v3.11.4:d2340ef, Jun  6 2023, 20:54:21) [MSC v.1934 64 bit (AMD64)]

逐行解釋與參數(shù)說明:

  • import sys :導(dǎo)入 sys 模塊;
  • print(sys.version) :打印當前 Python 的版本字符串。

此輸出包含了詳細的版本信息,適合用于調(diào)試、日志記錄等場景。但因為是字符串格式,不適合用于版本比較或條件判斷。

到此這篇關(guān)于python獲取版本信息的方法與第三方庫總結(jié)的文章就介紹到這了,更多相關(guān)python獲取版本信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV-Python模板匹配人眼的實例

    OpenCV-Python模板匹配人眼的實例

    模板匹配是指在當前圖像A內(nèi)尋找與圖像B最相似的部分,本文詳細的介紹了OpenCV-Python模板匹配人眼的實例,感興趣的可以了解一下
    2021-06-06
  • 使用matplotlib繪制圖例標簽中帶有公式的圖

    使用matplotlib繪制圖例標簽中帶有公式的圖

    今天小編就為大家分享一篇使用matplotlib繪制圖例標簽中帶有公式的圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python利用pandas和matplotlib實現(xiàn)繪制雙柱狀圖

    Python利用pandas和matplotlib實現(xiàn)繪制雙柱狀圖

    在數(shù)據(jù)分析和可視化中,常用的一種圖形類型是柱狀圖,柱狀圖能夠清晰地展示不同分類變量的數(shù)值,并支持多組數(shù)據(jù)進行對比,本篇文章將介紹python如何使用pandas和matplotlib繪制雙柱狀圖,需要的可以參考下
    2023-11-11
  • Python如何實現(xiàn)轉(zhuǎn)換URL詳解

    Python如何實現(xiàn)轉(zhuǎn)換URL詳解

    這篇文章主要介紹了Python如何實現(xiàn)轉(zhuǎn)換URL詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Django?事務(wù)回滾的具體實現(xiàn)

    Django?事務(wù)回滾的具體實現(xiàn)

    本文主要介紹了Django?事務(wù)回滾的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于python的ini配置文件操作工具類

    基于python的ini配置文件操作工具類

    這篇文章主要為大家詳細介紹了基于python的ini配置文件操作工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python之Class&Object用法詳解

    Python之Class&Object用法詳解

    今天小編就為大家分享一篇Python之Class&Object用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 解決jupyter (python3) 讀取文件遇到的問題

    解決jupyter (python3) 讀取文件遇到的問題

    這篇文章主要介紹了解決jupyter (python3) 讀取文件遇到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 200行python代碼實現(xiàn)2048游戲

    200行python代碼實現(xiàn)2048游戲

    這篇文章主要為大家詳細介紹了200行Python代碼實現(xiàn)2048游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python實現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例

    python實現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例

    這篇文章主要為大家介紹了python實現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家,多多進步,早日升職加薪
    2021-10-10

最新評論