社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

超实用!轻松控制Python及依赖库版本

Python大数据分析 • 2 周前 • 26 次点击  

添加微信号"CNFeffery"

备注"数据分析"入技术交流群

1 简介

大家好我是费老师,我们在日常管理Python项目时,非常重要的一点,是要对项目本身依赖的Python版本以及相关依赖库版本进行妥善管理,从而确保项目可以稳定持续的进行维护或迁移。

通常我们会基于pippipreqscondauv等环境管理工具所导出的requirements.txtenvironment.ymlpyproject.toml配置文件,对项目的相关依赖版本进行控制,但这些方式都只是辅助性质,并不会在Python项目代码运行时严格检查依赖库版本,这就带来了很多犯错的可能性。

今天的文章中,我就将为大家介绍如何在自己的Python项目源码中调用相关快捷函数,实现对Python版本、指定依赖库版本的严格检查,从而大幅提升项目维护的稳定性~

2 快捷检查Python版本及指定依赖库版本

为了方便演示,我们建立新的虚拟环境,并安装一些常见的库用作举例(这里以conda/mamba为例建立环境):

mamba create -n demo-env python=3.10 -y

mamba activate demo-env

pip install jupyterlab pandas dash feffery-dash-utils -U

2.1 快捷检查Python版本

当我们希望项目限制在指定的Python版本范围内才可以正常运行时,可以使用check_python_version()函数快捷实现:

from feffery_dash_utils.version_utils 


    
import check_python_version

下面是相关的使用示例:

  • 限制Python版本下限
# 例:限制当前环境Python版本下限为3.8
check_python_version(min_version='3.8')
  • 限制Python版本上限
# 例:限制当前环境Python版本上限为3.12
check_python_version(max_version='3.12')

当检测到Python版本不符合设定要求时,则会抛出对应的错误信息,譬如我们的示例环境为3.10,对应触发的检查错误结果:

2.2 快捷检查指定依赖库版本

当我们希望对指定依赖库的版本做严格检查时,则可以使用check_dependencies_version()函数快捷实现:

from feffery_dash_utils.version_utils import check_dependencies_version

其参数rules用于定义针对若干依赖库的版本范围规则,兼容类似requirements.txt中可使用的各种声明版本范围的规则写法,下面是一些例子:

  • 限制指定库等于某版本
check_dependencies_version(
    rules=[
        {
            'name''pandas',
            'specifier''==2.2.3'
        }
    ]
)
  • 限制指定库大于等于某版本
check_dependencies_version(
    rules=[
        {
            'name''dash',
            'specifier''>=2.18.2'
        }
    ]
)
  • 限制指定库版本在某范围内
check_dependencies_version(
    rules=[
        {
            'name''pandas',
            'specifier''>=2.0,<4.0'
        }
    ]
)
  • 更复杂的版本范围规则
check_dependencies_version(
    rules=[
        {
            'name''pandas',
            'specifier''>=2.0,<4.0,!=2.2.0'
        }
    ]
)

当存在指定库的版本范围不满足设定规则时,同样会抛出错误进行提示:

通过上面介绍的快捷函数check_python_version()check_dependencies_version(),我们就可以更严格的限制项目依赖版本,避免很多不必要的问题💪~

更多参考资料:

  • feffery-dash-utils源码仓库:https://github.com/CNFeffery/feffery-dash-utils
  • feffery-dash-utils码云同步源码仓库:https://gitee.com/cnfeffery/feffery-dash-utils

以上就是本文的全部内容,欢迎在评论区与我们进行讨论~

· 推荐阅读 ·

magic-dash:新一代Python全栈应用开发方案

纯Python开发Deepseek联网问答助手

Python+DeepSeek新玩法:一句话搞定应用生成+发布


长按识别下方二维码

即刻加 入我们的知识圈子

超多Python干货内容等你来探索


图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181077
 
26 次点击