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

添加numpy时Pipenv lock失败,报AttributeError错误求助

问题:添加numpy到Pipfile后执行pipenv lock报错AttributeError

问题详情

  • 目标:生成包含numpy的Pipfile与Pipfile.lock文件
  • 触发错误:AttributeError: 'String' object has no attribute 'update'
  • 基础状态:不添加numpy时,pipenv lock可正常运行;pipenv graph显示numpy 1.21.6已作为间接依赖安装,但需在Pipfile中显式声明才能在Docker镜像中完成安装
  • 已尝试操作:在[packages]区块中添加numpy = "*"和numpy = "==1.21.6"两种配置,均触发相同错误

当前Pipfile内容:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
autopep8 = "*"
pep8 = "*"
pytest = "*"
pytest-datadir = "*"
pytest-mock = "*"

[packages]
Jinja2 = "==3.1.2"
pandas = "==1.3.5"
PyYAML = "==6.0.1"
click = "==8.1.7"
google-ads = "==22.0.0"
db-dtypes = "==1.1.1"
pyarrow = "==12.0.0"

[requires]
python_version = "3.7"

解决方案

1. 升级Pipenv版本

该错误大概率是Pipenv版本过旧导致的兼容性问题,先升级到最新稳定版:

pip install --upgrade pipenv

2. 清理依赖缓存

升级后清理旧缓存,避免残留依赖干扰锁文件生成:

pipenv clean
pipenv lock --clear

3. 重新添加numpy并生成锁文件

先移除本地已安装的numpy,再通过Pipenv命令重新添加(会自动写入Pipfile):

pipenv uninstall numpy
pipenv install numpy==1.21.6

完成后执行锁文件生成:

pipenv lock

4. 手动校验Pipfile格式

如果自动写入出现格式错误,手动检查[packages]区块的语法,确保numpy配置符合标准格式:

[packages]
# 保留原有包配置
numpy = "==1.21.6"

注意每个包的配置为包名 = "版本号"格式,无多余符号或换行错误。

5. 确认版本兼容性

numpy 1.21.6与Python 3.7完全兼容,若仍有问题,可尝试指定兼容版本范围:

numpy = ">=1.21.0,<1.22.0"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:16:12