Henryhaohao / Bilibili_video_download

:rainbow:Bilibili_video_download-B站视频下载
https://www.bilibili.com/
Apache License 2.0
3.01k stars 732 forks source link

ImportError: cannot import name 'Mapping' from 'collections' #98

Open icoo000 opened 2 years ago

icoo000 commented 2 years ago

Traceback (most recent call last): File "E:\github_workspace\Bilibili_video_download\bilibili_video_download_v1.py", line 17, in import requests, time, hashlib, urllib.request, re, json File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\requests__init__.py", line 43, in import urllib3 File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3__init.py", line 8, in from .connectionpool import ( File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 29, in from .connection import ( File "C:\Users\shy0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connection.py", line 39, in from .util.ssl import ( File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\init.py", line 3, in from .connection import is_connection_dropped File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\connection.py", line 3, in from .wait import wait_for_read File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\wait.py", line 1, in from .selectors import ( File "C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\selectors.py", line 14, in from collections import namedtuple, Mapping ImportError: cannot import name 'Mapping' from 'collections' (C:\Users\shy_0\AppData\Local\Programs\Python\Python310\lib\collections\init__.py)

selfuppen commented 2 years ago

我的 mac,也遇到同样的问题:

➜  bili_download git:(master) python3 bilibili_video_download-GUI.py

Traceback (most recent call last):
  File "/Users/guoqiang/IdeaProjects/github/practice/bili_download/bilibili_video_download-GUI.py", line 15, in <module>
    import requests, time, hashlib, urllib.request, re, json
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/connectionpool.py", line 29, in <module>
    from .connection import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/connection.py", line 39, in <module>
    from .util.ssl_ import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/util/__init__.py", line 3, in <module>
    from .connection import is_connection_dropped
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/util/connection.py", line 3, in <module>
    from .wait import wait_for_read
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/util/wait.py", line 1, in <module>
    from .selectors import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/util/selectors.py", line 14, in <module>
    from collections import namedtuple, Mapping
ImportError: cannot import name 'Mapping' from 'collections' (/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)
UnhappyMoonlight commented 2 years ago

这个问题应该是python版本太高,3.8和3.9版本的貌似可以直接使用,想要在更高版本用的话,需要在最后提示的那个文件中把from collections import xxx改成from collections.abc import xxx需要改的文件数量有点多,慢慢改完就行。 要注意一点,现在b站视频都已经改成了bv号想要用这个下载要先转换成av号

Ravanla commented 1 year ago

@UnhappyMoonlight 我的38和39版本为啥不行的?大佬有解决方案吗? image