pytest警告DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working


問題現象

=========================================================================================== warnings summary =========================================================================================== 
f:\python3.7\lib\site-packages\urllib3\util\selectors.py:14
  f:\python3.7\lib\site-packages\urllib3\util\selectors.py:14: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
    from collections import namedtuple, Mapping

f:\python3.7\lib\site-packages\urllib3\_collections.py:2
  f:\python3.7\lib\site-packages\urllib3\_collections.py:2: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
    from collections import Mapping, MutableMapping

問題分析

大致意思是:棄用警告:從collections中導入ABCs已被棄用,並在python3.8中將停止工作,可使用collections.abc代替它進行使用
然后就各種百度了解,主要看到兩種解決辦法,做一下簡單匯總:
第一種: 在代碼文件中用到了 collections 這個模塊的報錯;
第二種:在代碼文件中沒有用到 collections 這個模塊的報錯;

解決方法

  1. 如果有使用這個方法
# from collections import Iterable   ---這是會報警告的用法
from collections.abc import Iterable ---這是不會報警告的用法
  1. 如果根本沒用調用這個方法
    那么只能通過pytest的告警過濾了
    創建pytest.ini文件,寫入下面內容並保存
[pytest]
addopts = -p no:warnings

運行后,告警消除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM