【问题标题】:AttributeError: module 'time' has no attribute 'clock' In SQLAlchemy python 3.8.2AttributeError:模块'时间'在SQLAlchemy python 3.8.2中没有属性'时钟'
【发布时间】:2020-06-17 19:19:27
【问题描述】:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Anirudh\Documents\flask_app\connecting_to_database\application.py", line 2, in <module>
    from flask_sqlalchemy import SQLAlchemy
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\flask_sqlalchemy\__init__.py", line 18, in <module>
    import sqlalchemy
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\__init__.py", line 9, in <module>
    from .sql import (
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\__init__.py", line 8, in <module>
    from .expression import (
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\expression.py", line 34, in <module>
    from .visitors import Visitable
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\visitors.py", line 28, in <module>
    from .. import util
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\__init__.py", line 8, in <module>
    from .compat import callable, cmp, reduce,  \
  File "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\compat.py", line 234, in <module>
    time_func = time.clock
AttributeError: module 'time' has no attribute 'clock'

【问题讨论】:

  • 提交问题时,建议提供一些背景信息。请注明操作系统和版本,完整的 Python 版本,SQLALchemy 版本,flask_sqlalchemy 版本。还有在哪里运行virtualenv,system等。刚刚注意到visitors.py在sqlalchemy包中。那是你的模块吗?

标签: python flask flask-sqlalchemy


【解决方案1】:

我在使用 SQLAlchemy 1.2.10 时遇到了这个问题。升级到当前版本(截至目前为 1.3.18)修复了问题

pip install sqlalchemy --upgrade

【讨论】:

    【解决方案2】:

    出现该错误是因为在python 2中,有time.clock(),但在python 3中,它已被time.perf_counter()替换。

    只要把time.clock全部替换成time.perf_counter就可以了。欲了解更多信息:https://www.webucator.com/blog/2015/08/python-clocks-explained/

    【讨论】:

    【解决方案3】:

    我找到了适合我的解决方案 我有一个名为 env 的虚拟环境地毯,我在其中安装了 sqlalchemy 所以,env\Lib\site-packages\flask_sqlalchemy_init_.py 里面有这段代码:

       if sys.platform == 'win32':
            _timer = time.clock
       else:
            _timer = time.time
    

    我将时钟更改为 perf_counter() _timer = time.perf_counter()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多