TypeError:attrib() 得到了一个意外的关键字参数“convert”
Posted
技术标签:
【中文标题】TypeError:attrib() 得到了一个意外的关键字参数“convert”【英文标题】:TypeError: attrib() got an unexpected keyword argument 'convert' 【发布时间】:2020-01-31 00:49:51 【问题描述】:在使用 pytest
在 CI 服务器上对 python 项目进行自动化测试期间发生此错误。我正在使用pytest==4.0.2
。这个错误才刚刚开始发生,以前的管道似乎工作正常。
完整的错误:
File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory
lambda p: Path(os.path.abspath(six.text_type(p)))
TypeError: attrib() got an unexpected keyword argument 'convert'
【问题讨论】:
请添加您的代码或准备最小示例。 【参考方案1】:pytest
似乎将包 attrs
作为依赖项。 attrs==19.2.0
是在 2019-10-01 17:00 UTC
周围发布的。这似乎导致了上述问题。
切换回attrs==19.1.0
可以解决问题。只需执行以下操作:
pip install attrs==19.1.0
注意:我希望通过发布新版本,attrs
或 pytest
很快就会解决此问题。所以这个修复应该只是暂时的。
更新:将评论移到答案中。此错误不会出现在较新版本的 pytest 上,即pytest==5.2.0
【讨论】:
我确认,最好的做法是将pytest
更新到更新的版本。
我认为版本固定中缺少=
标志。应该是pip install --upgrade attrs==19.1.0
我确认这是我必须手动安装的意外依赖项。【参考方案2】:
pytest 在 3.6.3 (https://docs.pytest.org/en/latest/changelog.html#pytest-3-6-3-2018-07-04) 中使用已弃用的关键字 convert
修复。
在 4.0.1 中,pytest 使用 convert
(https://github.com/pytest-dev/pytest/pull/4427) 合并代码。
此代码已在 5.2.0 (https://github.com/pytest-dev/pytest/pull/4795) 上修复。
【讨论】:
【参考方案3】:带有 attrs 版本 19.3.0 的 pytest 版本 5.3.1 对我来说很好。 [要检查 pytest 版本和 attrs 版本,请发出以下命令:]
pip show pytest attrs
我通过 pip 命令升级 pytest 模块解决了同样的问题:
pip install -U pytest
【讨论】:
【参考方案4】:python -m pip install --upgrade pytest
(anaconda 提示符或 cmd)
这应该可以解决您的问题,因为 pytest 的更新版本会自动处理 attr 问题。
【讨论】:
【参考方案5】:我对@987654323@ v2 有同样的错误。
我已经更新了我的 aws-cdk.core
库,它再次与迁移到 aws-encryption-cli
V2 一起工作。
pip install -U aws-cdk.core
V2 文档:https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/crypto-cli-examples.html#cli-example-encrypt-file
github 错误:https://github.com/aws/aws-cdk/issues/3293
【讨论】:
【参考方案6】:只需使用命令
conda update conda
然后重启你的系统。
【讨论】:
以上是关于TypeError:attrib() 得到了一个意外的关键字参数“convert”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError: __init__() 得到了一个意外的关键字参数“评分”
Python TypeError:reduce_noise() 得到了一个意外的关键字
TypeError: scatter() 得到了一个意外的关键字参数“trendline_options”(Plotly,Python)
TypeError: plot_confusion_matrix() 得到了一个意外的关键字参数“标题”