You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pipenv本地可编辑模式下Python包版本未更新的问题排查

问题原因

当使用pipenv install -e(开发模式)安装本地包时,pkg_resources读取的是包目录下自动生成的*.egg-info文件夹中的版本元数据,而非实时读取setup.py的内容。这个*.egg-info目录是在第一次执行install -e时生成的,后续修改setup.py的版本号不会自动触发该目录的更新。

而代码改动能实时生效,是因为开发模式下Python会直接链接到本地源码目录,代码文件的修改会在重启解释器后被加载,但版本元数据属于安装时生成的静态信息,不会自动同步。

解决方法
  • 重新执行开发版安装命令,强制更新元数据:
    pipenv install -e ~/path/to/my_pack
    
  • 进入包的根目录,手动更新*.egg-info目录:
    cd ~/path/to/my_pack
    python setup.py egg_info
    
  • 优化版本管理方案(更长效的解决办法):
    将版本号单独存放在包内的文件(比如my_pack/_version.py),内容示例:
    __version__ = "0.0.4"
    
    然后在setup.py中导入该版本:
    from my_pack._version import __version__
    
    setup(
        version=__version__,
        # 其他配置项...
    )
    
    之后查询版本时直接从包的属性获取,无需依赖pkg_resources:
    pipenv run python
    >>> import my_pack
    >>> print(my_pack.__version__)
    0.0.4
    >>> exit()
    

内容的提问来源于stack exchange,提问作者Robino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:50:31