text: Title: install.sh 出错
  Body: 系统：20.04.6
  网络：Google畅通
  
  root下执行 `sudo bash install.sh`
  
  install.sh是新下载的,运行了好几次，都是一样的问题，日志如下：
  
  ```
  Updating package lists... | 正在更新软件包列表...
  Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
  Hit:2 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
  Hit:3 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
  Hit:4 http://us.archive.ubuntu.com/ubuntu focal-security InRelease
  Reading package lists... Done
  Installing Git... | 正在安装Git...
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  git is already the newest version (1:2.25.1-1ubuntu3.12).
  0 upgraded, 0 newly installed, 0 to remove and 57 not upgraded.
  Installing Python3... | 正在安装Python3...
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  python3 is already the newest version (3.8.2-0ubuntu2).
  0 upgraded, 0 newly installed, 0 to remove and 57 not upgraded.
  Installing PIP3... | 正在安装PIP3...
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  python3-pip is already the newest version (20.0.2-5ubuntu1.10).
  0 upgraded, 0 newly installed, 0 to remove and 57 not upgraded.
  Installing python3-venv... | 正在安装python3-venv...
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  python3-venv is already the newest version (3.8.2-0ubuntu2).
  0 upgraded, 0 newly installed, 0 to remove and 57 not upgraded.
  Creating path: /www/wwwroot | 正在创建路径: /www/wwwroot
  Cloning Douyin_TikTok_Download_API.git from Github! | 正在从Github克隆Douyin_TikTok_Download_API.git!
  Cloning into 'Douyin_TikTok_Download_API'...
  remote: Enumerating objects: 3354, done.
  remote: Counting objects: 100% (817/817), done.
  remote: Compressing objects: 100% (338/338), done.
  remote: Total 3354 (delta 562), reused 679 (delta 467), pack-reused 2537
  Receiving objects: 100% (3354/3354), 8.55 MiB | 6.98 MiB/s, done.
  Resolving deltas: 100% (2318/2318), done.
  Creating a virtual environment | 正在创建虚拟环境
  Activating the virtual environment | 正在激活虚拟环境
  Setting pip to use the default PyPI index | 设置pip使用默认PyPI索引
  Writing to /root/.config/pip/pip.conf
  Installing pip setuptools | 安装pip setuptools
  Looking in indexes: https://pypi.org/simple/
  Requirement already satisfied: setuptools in ./venv/lib/python3.8/site-packages (44.0.0)
  Installing dependencies from requirements.txt | 从requirements.txt安装依赖
  Looking in indexes: https://pypi.org/simple/
  Collecting aiofiles==23.2.1
    Using cached aiofiles-23.2.1-py3-none-any.whl (15 kB)
  Collecting annotated-types==0.6.0
    Using cached annotated_types-0.6.0-py3-none-any.whl (12 kB)
  Collecting anyio==4.3.0
    Using cached anyio-4.3.0-py3-none-any.whl (85 kB)
  Collecting browser-cookie3==0.19.1
    Using cached browser_cookie3-0.19.1-py3-none-any.whl (14 kB)
  Collecting certifi==2024.2.2
    Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
  Collecting click==8.1.7
    Using cached click-8.1.7-py3-none-any.whl (97 kB)
  Collecting colorama==0.4.6
    Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
  Collecting fastapi==0.110.2
    Using cached fastapi-0.110.2-py3-none-any.whl (91 kB)
  Collecting h11==0.14.0
    Using cached h11-0.14.0-py3-none-any.whl (58 kB)
  Collecting httpcore==1.0.5
    Using cached httpcore-1.0.5-py3-none-any.whl (77 kB)
  Collecting httpx==0.27.0
    Using cached httpx-0.27.0-py3-none-any.whl (75 kB)
  Collecting idna==3.7
    Using cached idna-3.7-py3-none-any.whl (66 kB)
  Collecting importlib_resources==6.4.0
    Using cached importlib_resources-6.4.0-py3-none-any.whl (38 kB)
  Collecting lz4==4.3.3
    Using cached lz4-4.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)
  Collecting markdown-it-py==3.0.0
    Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
  Collecting mdurl==0.1.2
    Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)
  Collecting numpy
    Using cached numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
  Collecting pycryptodomex==3.20.0
    Using cached pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
  Collecting pydantic==2.7.0
    Using cached pydantic-2.7.0-py3-none-any.whl (407 kB)
  Collecting pydantic_core==2.18.1
    Using cached pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
  WARNING: The candidate selected for download or install is a yanked version: 'pyfiglet' candidate (version 1.0.0 at https://files.pythonhosted.org/packages/29/e4/f2ec4cc8773a60678a702ad0c1cae0dbacfbf1f79956d4aecaa712a980f1/pyfiglet-1.0.0-py3-none-any.whl#sha256=975a6349470d1e470212015f13ef10f565de5270e387d9b0bc6330f692791b09 (from https://pypi.org/simple/pyfiglet/))
  Reason for being yanked: Breaks old python versions
  Collecting pyfiglet==1.0.0
    Using cached pyfiglet-1.0.0-py3-none-any.whl (1.1 MB)
  Collecting Pygments==2.17.2
    Using cached pygments-2.17.2-py3-none-any.whl (1.2 MB)
  Collecting pypng==0.20220715.0
    Using cached pypng-0.20220715.0-py3-none-any.whl (58 kB)
  Collecting pywebio==1.8.3
    Using cached pywebio-1.8.3.tar.gz (500 kB)
  Collecting pywebio-battery==0.6.0
    Using cached pywebio_battery-0.6.0.tar.gz (13 kB)
  Collecting PyYAML==6.0.1
    Using cached PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (736 kB)
  Collecting qrcode==7.4.2
    Using cached qrcode-7.4.2-py3-none-any.whl (46 kB)
  Collecting rich==13.7.1
    Using cached rich-13.7.1-py3-none-any.whl (240 kB)
  Collecting sniffio==1.3.1
    Using cached sniffio-1.3.1-py3-none-any.whl (10 kB)
  Collecting starlette==0.37.2
    Using cached starlette-0.37.2-py3-none-any.whl (71 kB)
  Collecting tornado==6.4
    Using cached tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435 kB)
  Collecting typing_extensions==4.11.0
    Using cached typing_extensions-4.11.0-py3-none-any.whl (34 kB)
  Collecting ua-parser==0.18.0
    Using cached ua_parser-0.18.0-py2.py3-none-any.whl (38 kB)
  Collecting user-agents==2.2.0
    Using cached user_agents-2.2.0-py3-none-any.whl (9.6 kB)
  Collecting uvicorn==0.29.0
    Using cached uvicorn-0.29.0-py3-none-any.whl (60 kB)
  Collecting websockets==12.0
    Using cached websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)
  Collecting exceptiongroup>=1.0.2; python_version < "3.11"
    Using cached exceptiongroup-1.2.1-py3-none-any.whl (16 kB)
  Collecting jeepney; python_version >= "3.7" and ("bsd" in sys_platform or sys_platform == "linux")
    Using cached jeepney-0.8.0-py3-none-any.whl (48 kB)
  Collecting zipp>=3.1.0; python_version < "3.10"
    Using cached zipp-3.19.2-py3-none-any.whl (9.0 kB)
  Building wheels for collected packages: pywebio, pywebio-battery
    Building wheel for pywebio (setup.py) ... error
    ERROR: Command errored out with exit status 1:
     command: /www/wwwroot/Douyin_TikTok_Download_API/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xefcwgok/pywebio/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xefcwgok/pywebio/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-g8i06u6p
         cwd: /tmp/pip-install-xefcwgok/pywebio/
    Complete output (6 lines):
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: setup.py --help [cmd1 cmd2 ...]
       or: setup.py --help-commands
       or: setup.py cmd --help
    
    error: invalid command 'bdist_wheel'
    ----------------------------------------
    ERROR: Failed building wheel for pywebio
    Running setup.py clean for pywebio
    Building wheel for pywebio-battery (setup.py) ... error
    ERROR: Command errored out with exit status 1:
     command: /www/wwwroot/Douyin_TikTok_Download_API/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xefcwgok/pywebio-battery/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xefcwgok/pywebio-battery/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-f76w5kh7
         cwd: /tmp/pip-install-xefcwgok/pywebio-battery/
    Complete output (6 lines):
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: setup.py --help [cmd1 cmd2 ...]
       or: setup.py --help-commands
       or: setup.py cmd --help
    
    error: invalid command 'bdist_wheel'
    ----------------------------------------
    ERROR: Failed building wheel for pywebio-battery
    Running setup.py clean for pywebio-battery
  Failed to build pywebio pywebio-battery
  Installing collected packages: aiofiles, typing-extensions, annotated-types, exceptiongroup, idna, sniffio, anyio, lz4, jeepney, pycryptodomex, browser-cookie3, certifi, click, colorama, pydantic-core, pydantic, starlette, fastapi, h11, httpcore, httpx, zipp, importlib-resources, mdurl, markdown-it-py, numpy, pyfiglet, Pygments, pypng, tornado, ua-parser, user-agents, pywebio, pywebio-battery, PyYAML, qrcode, rich, uvicorn, websockets
      Running setup.py install for pywebio ... done
      Running setup.py install for pywebio-battery ... done
  Successfully installed PyYAML-6.0.1 Pygments-2.17.2 aiofiles-23.2.1 annotated-types-0.6.0 anyio-4.3.0 browser-cookie3-0.19.1 certifi-2024.2.2 click-8.1.7 colorama-0.4.6 exceptiongroup-1.2.1 fastapi-0.110.2 h11-0.14.0 httpcore-1.0.5 httpx-0.27.0 idna-3.7 importlib-resources-6.4.0 jeepney-0.8.0 lz4-4.3.3 markdown-it-py-3.0.0 mdurl-0.1.2 numpy-1.24.4 pycryptodomex-3.20.0 pydantic-2.7.0 pydantic-core-2.18.1 pyfiglet-1.0.0 pypng-0.20220715.0 pywebio-1.8.3 pywebio-battery-0.6.0 qrcode-7.4.2 rich-13.7.1 sniffio-1.3.1 starlette-0.37.2 tornado-6.4 typing-extensions-4.11.0 ua-parser-0.18.0 user-agents-2.2.0 uvicorn-0.29.0 websockets-12.0 zipp-3.19.2
  Deactivating the virtual environment | 正在停用虚拟环境
  Adding Douyin_TikTok_Download_API to system service | 将Douyin_TikTok_Download_API添加到系统服务
  Enabling Douyin_TikTok_Download_API service | 启用Douyin_TikTok_Download_API服务
  Starting Douyin_TikTok_Download_API service | 启动Douyin_TikTok_Download_API服务
  Douyin_TikTok_Download_API installation complete! | Douyin_TikTok_Download_API安装完成!
  You can access the API at http://localhost:80 | 您可以在http://localhost:80访问API
  You can change the port in config.yaml under the /www/wwwroot/Douyin_TikTok_Download_API directory | 您可以在/www/wwwroot/Douyin_TikTok_Download_API目录下的config.yaml中更改端口
  If the API is not working, please change the cookie in config.yaml under the /www/wwwroot/Douyin_TikTok_Download_API/crawler/[Douyin/TikTok]/[APP/Web]/config.yaml directory | 如果API无法工作，请更改/www/wwwroot/Douyin_TikTok_Download_API/crawler/[Douyin/TikTok]/[APP/Web]/config.yaml目录下的cookie
  ```