AttributeError 模块 ‘time’ 没有属性 ‘clock’
AttributeError module ‘time’ has no attribute ‘clock’
Python“AttributeError module ‘time’ has no attribute ‘clock’”的出现是因为从Python v3.8开始,该clock()
函数已被移除。
要解决该错误,请改用time.perf_counter()
或time.process_time()
函数。
这是一个使用perf_counter()
.
import time start = time.perf_counter() time.sleep(1) end = time.perf_counter() print(end - start) # 👉️ 1.0010583459988993
该perf_counter
函数返回性能计数器的小数秒数。该函数包括睡眠期间经过的时间。
该clock()
函数已在 Python 3.8 中删除,因此我们必须使用
perf_counter或
process_time。
这是一个使用process_time()
.
import time start = time.process_time() time.sleep(1) end = time.process_time() print(end - start) # 👉️ 3.2690000000001884e-05
该process_time
函数返回当前进程的系统和用户 CPU 时间的小数秒数。该函数不包括睡眠期间经过的时间。
process_time
表示进程在 CPU 上执行的活动时间,而方法的结果表示已经过去了多少时间(包括休眠时间、等待 Web 请求等)。 perf_counter
方法perf_counter
:
- 以小数秒为单位返回性能计数器的值。
- 包括睡眠期间经过的时间并且是系统范围的。
方法process_time
:
- 以小数秒为单位返回进程的系统和用户 CPU 时间之和的值。
- 不包括睡眠期间经过的时间并且是进程范围的。
# 如果你在使用第三方模块时遇到错误
如果您没有使用该time.clock()
函数但仍然出现错误,那么您正在使用一个使用该clock()
函数的外部模块,如果它不再被维护,您必须更新它或替换它。
最常见的错误是由于使用未维护的PyCrypto
模块或安装了旧版本的sqlalchemy
。
# ✅ if you use PyCrypto pip uninstall PyCrypto # 👈️ abandoned project pip install pycryptodome # 👈️ actively maintained fork pip3 uninstall PyCrypto # 👈️ abandoned project pip3 install pycryptodome # 👈️ actively maintained fork # ✅ if you use SQLAlchemy pip install SQLAlchemy --upgrade # 👈️ upgrade package version pip3 install SQLAlchemy --upgrade # 👈️ upgrade package version
如果错误是由其他外部模块引起的,请尝试使用
pip install your_module --upgrade
命令升级它。
如果模块未更新为不使用该clock()
功能,则必须寻找替代品或使用低于 3.8 的 Python 版本。
如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。
# 升级你环境中的所有包
升级所有过时包的最直接方法是使用 Python 脚本。
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
main.py
并运行该文件python main.py
以升级所有过时的包。以下是可用于升级所有过时软件包的替代命令。
# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i
如果您使用
requirements.txt文件,您可以使用以下命令更新它。
pip freeze > requirements.txt
# 额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: