在 python3.6 上导入 yarl 或 discord.py 时出现问题

Problem importing yarl or discord.py on python3.6

我最近更新了 discord.py 由于概述的错误 ,更新后我无法再导入它。

运行 import discord 出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/discord/__init__.py", line 23, in <module>
    from .client import Client
  File "/usr/local/lib/python3.6/site-packages/discord/client.py", line 34, in <module>
    import aiohttp
  File "/usr/local/lib/python3.6/site-packages/aiohttp/__init__.py", line 6, in <module>
    from .client import BaseConnector as BaseConnector
  File "/usr/local/lib/python3.6/site-packages/aiohttp/client.py", line 30, in <module>
    from yarl import URL
  File "/usr/local/lib/python3.6/site-packages/yarl/__init__.py", line 1, in <module>
    from ._url import URL, cache_clear, cache_configure, cache_info
  File "/usr/local/lib/python3.6/site-packages/yarl/_url.py", line 56, in <module>
    @rewrite_module
  File "/usr/local/lib/python3.6/site-packages/yarl/_url.py", line 132, in URL
    _QUERY_PART_QUOTER = _Quoter(safe="?/:@", qs=True, requote=False)
  File "yarl/_quoting.pyx", line 192, in yarl._quoting._Quoter.__init__
TypeError: __init__() got an unexpected keyword argument 'requote'

列表中的最后一个是 yarl,所以我尝试了 import yarl 并得到了这个错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/yarl/__init__.py", line 1, in <module>
    from ._url import URL, cache_clear, cache_configure, cache_info
  File "/usr/local/lib/python3.6/site-packages/yarl/_url.py", line 56, in <module>
    @rewrite_module
  File "/usr/local/lib/python3.6/site-packages/yarl/_url.py", line 132, in URL
    _QUERY_PART_QUOTER = _Quoter(safe="?/:@", qs=True, requote=False)
  File "yarl/_quoting.pyx", line 192, in yarl._quoting._Quoter.__init__
TypeError: __init__() got an unexpected keyword argument 'requote'

python的版本是3.6.8。我也在另一台装有 3.6.9 的机器上试过这个,但得到了同样的错误。我已经在装有 3.7.7 的机器上试过这个并且所有东西都正常加载,但是我没有能力在这台机器上将 python 升级到 3.7,所以我想让它在 3.6 上工作。

更新到 yarl 1.5.1 应该可以解决这个问题。 GitHub Issue 表明这是发布内部 C 代码的问题。

升级 pip 对我没有帮助。

如@Orangutan 所示,强制重新安装 yarl 对我没有帮助。

然而,下面的方法成功了:

mkdir ~/backup
mv ~/.local/lib/python3.6/site-packages/yarl* ~/backup/
pip3 install yarl --force-reinstall --no-cache-dir