导入异步抛出

2024-05-19 22:26:20 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的终端中,我想用asyncio测试一些东西。我是这样做的:

$ python3.6
Python 3.6.2 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio

这就产生了如下错误:

^{pr2}$

它为什么抛出这个错误,我如何修复它?(我以同样的方式检查了python3.5解释器,没有出错,所以可能是库损坏了?)在

我用-v开关运行Python,在提示符处运行import asyncio后产生的输出相当大,因此它可以在this GitHub gist中使用。在


Tags: importbuildasyncio终端appleontype错误
2条回答

您的本地安装已损坏。从您提供的python -v输出中:

# bytecode is stale for 'asyncio.tasks'
# code object from /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py
import 'asyncio.tasks' # <_frozen_importlib_external.SourceFileLoader object at 0x104cf7860>

字节码是stale消息意味着asyncio/tasks.py文件比附带的asyncio/__pycache__/tasks.cpython-36.pyc文件更新。这表示有东西改变了tasks.py文件,导致内容与Python二进制文件附带的内容不同。在

为了进行比较,同级模块asyncio.events是从字节码缓存中加载的,字节码缓存由Python安装程序在安装时提供:

^{pr2}$

该模块的代码对象是从asyncio/__pycache__/events.cpython-36.pyc文件加载的。在

您可以从OS X installer重新安装Python,但此时我只需要使用newer 3.6.5 release。在

您也可以尝试通过下载original source from the v3.6.2 tag来恢复原始内容,但之后必须确保重新生成字节码(运行sudo python -m compileall /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py),并且需要检查是否有其他类似的更改文件(请尝试find /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 -name \*.py -newer /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/__init__.py

好像是个虫子

尝试通过brew升级Python

brew upgrade python3

目前,python3.6.5是可用的,不存在这样的问题

相关问题 更多 >