7 votes

AttributeError: le module 'time' n'a pas l'attribut 'clock' dans SQLAlchemy python 3.8.2

Traceback (dernier appel le plus récent) :
  Fichier "", ligne 1, dans 
  Fichier "C:\Users\Anirudh\Documents\flask_app\connecting_to_database\application.py", ligne 2, dans 
    deflask_sqlalchemy import SQLAlchemy
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\flask_sqlalchemy\__init__.py", ligne 18, dans 
    import sqlalchemy
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\__init__.py", ligne 9, dans 
    from .sql import (
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\__init__.py", ligne 8, dans 
    from .expression import (
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\expression.py", ligne 34, dans 
    from .visitors import 
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\sql\visitors.py", ligne 28, dans 
    from .. import util
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\__init__.py", ligne 8, dans 
    from .compat import callable, cmp, reduce,  \
  Fichier "C:\Users\Anirudh\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\compat.py", ligne 234, dans 
    time_func = time.clock
AttributeError: le module 'time' n'a pas l'attribut 'clock'

13voto

EffinAndJeffin Points 131

J'ai eu ce problème avec SQLAlchemy 1.2.10. La mise à jour vers la version actuelle (1.3.18 à ce jour) a résolu le problème

pip install sqlalchemy --upgrade

2voto

Ann Zen Points 18513

L'erreur se produit car en python 2, il y a time.clock(), mais en python 3, il a été remplacé par time.perf_counter().

Remplacez simplement tous les time.clock par time.perf_counter, et cela devrait fonctionner correctement. Pour plus d'informations : https://www.webucator.com/blog/2015/08/python-clocks-explained/

2voto

Mshel Alvarez Points 21

J'ai trouvé une solution qui a fonctionné pour moi J'ai un tapis d'environnement virtuel nommé env dans lequel j'ai installé sqlalchemy Ainsi, env\Lib\site-packages\flask_sqlalchemy_init_.py À l'intérieur, il y a ce code :

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

Et j'ai changé clock en perf_counter() _timer = time.perf_counter()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X