【问题标题】:Import 'transport' error in asyncio attributes在异步属性中导入“传输”错误
【发布时间】:2020-04-13 00:26:34
【问题描述】:

我正在尝试制作一个不和谐的机器人,但我收到以下奇怪的错误,它无法导入 asyncio.Transport,尽管我可以在此代码之外正常使用它。

代码:

import asyncio
import os
import discord
from dotenv import load_dotenv

错误信息:

Traceback (most recent call last):
  File "dis.py", line 1, in <module>
    import asyncio
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\asyncio\__init__.py", line 21, in <module>
    from .base_events import *
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\asyncio\base_events.py", line 19, in <module>
    import inspect
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\inspect.py", line 36, in <module>
    import dis
  File "C:\Users\A.Gawish\dis.py", line 3, in <module>
    import discord
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\__init__.py", line 23, in <module>
    from .client import Client
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 34, in <module>
    import aiohttp
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\__init__.py", line 6, in <module>
    from .client import (
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\client.py", line 32, in <module>
    from . import hdrs, http, payload
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\http.py", line 7, in <module>
    from .http_parser import (
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\http_parser.py", line 14, in <module>
    from .base_protocol import BaseProtocol
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\base_protocol.py", line 4, in <module>
    from .tcp_helpers import tcp_nodelay
  File "C:\Users\A.Gawish\AppData\Local\Programs\Python\Python36\lib\site-packages\aiohttp\tcp_helpers.py", line 20, in <module>
    def tcp_keepalive(transport: asyncio.Transport) -> None:
AttributeError: module 'asyncio' has no attribute 'Transport'

【问题讨论】:

  • 我认为 asyncio.Transport 直到 3.7 才引入,根据 asyncio 文档,它直到 3.7 才出现
  • 它存在于库中,我检查了,我也可以在这个程序范围之外使用它。
  • 错误出现在程序的第一行,因此其余代码无关紧要。你说你可以“在这个程序的范围之外使用它”是什么意思?您如何启动该程序,以及您如何成功使用它?
  • 我使用命令:python dis.py 运行它,但是当我在命令 shell 中启动 python 并且我这样做时:import asyncio 然后无论如何使用asyncio.Transport 它工作正常。
  • 你解决了这个问题吗?

标签: python python-3.x discord python-asyncio


【解决方案1】:

您的文件名是dis.py,在另一个module 中使用。我通过确保文件名与 Lib 中的任何其他现有文件不同来解决了类似的问题

【讨论】:

    【解决方案2】:

    如果您查看错误消息,它表示 Python36。如果异步传输仅在 Python37 中发布,则您需要更改用于编写代码的任何程序中的路径,因为它正在查看 Python36。

    在命令提示符下测试它会显示您的系统可以看到 Python37,但您的代码没有。修复路径,然后它应该可以工作。

    【讨论】:

    • 我的电脑上连Python37都没有,命令提示符启动python 36 Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 13:35:33) [MSC v.1900 64 bit (AMD64)] on win32
    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多