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

Pipenv安装本地包报错:Underlying buffer has been detached(Python3.8/3.9)

问题描述
  • 本地包在Python 3.6环境下用Pipenv安装运行正常,但因需安装特定库,必须切换到Python 3.8或3.9版本。
  • 执行命令 pipenv install -e . --python 3.9 时触发错误:ValueError: underlying buffer has been detached。
  • 异常点:环境创建时显示使用Python 3.9的路径,但错误日志却指向Python 3.6的安装目录。

项目的setup.py配置如下:

setup(name=name,
      version=_version['__version__'],
      long_description=long_description,
      long_description_content_type="text/markdown",
      python_requires=">=3.6",
      packages=find_packages(),
      install_requires=[
          'requests>=2.26.0',
          'shapely>=1.6.4',
          'numpy>=1.17.0',
          'xarray>=0.12.3',
          'pandas>0.20.0',
          'deprecated>=1.2.12'
      ],
)
解决方案
  1. 清理旧环境与缓存

    • 删除项目根目录下的Pipfile和Pipfile.lock文件,移除旧版本环境的关联记录。
    • 执行 pipenv --rm 删除已创建的Python 3.9虚拟环境,确保环境完全干净。
  2. 强制指定Python完整路径

    • 避免仅用--python 3.9,改用Python 3.9可执行文件的绝对路径,示例:
      # Linux/macOS
      pipenv install -e . --python /usr/bin/python3.9
      # Windows
      pipenv install -e . --python C:\Python39\python.exe
      
    • 彻底规避Pipenv误关联旧版本Python的问题。
  3. 验证环境变量与版本一致性

    • 调整系统环境变量,让Python 3.9的路径优先级高于3.6,确保Pipenv调用正确的工具链。
    • 执行 pipenv --venv 查看虚拟环境路径,再用 pipenv run python --version 确认环境内的Python版本是否为3.9。
  4. 升级Pipenv及依赖工具

    • 旧版Pipenv可能存在版本检测bug,执行以下命令升级所有相关工具:
      pip install --upgrade pipenv pip setuptools
      
    • 升级后重新创建环境测试。
  5. 排查long_description加载逻辑

    • underlying buffer has been detached错误有时和文件流处理有关,检查long_description是否从README文件读取时未正确关闭流。可以临时将long_description替换为静态文本,验证是否还会触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:10:28