AttributeError 模块 ‘time’ 没有属性 ‘clock’

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()
函数。

attributeerror 模块时间没有属性时钟

这是一个使用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)
您可以将脚本存储在 Python 文件中,例如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

# 额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: