Tan*_*ham 5 python chatbot python-3.x chatterbot
我正在尝试创建一个聊天机器人,但由于我的电脑上未安装最新版本的聊天机器人,因此我使用以下命令安装了聊天机器人pip install chatterbot==1.0.4,并显示以下错误。
我该如何解决这个问题?
下面是代码:
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
bot = ChatBot("My Bot")
convo = [
'hello',
'hi there',
'what is your name?',
'My name is BOT, I am created my a hooman ',
'how are you',
'i am doing great these days',
'thank you',
'in which city you live',
'i live in kalyan',
'in which languages do you speak',
'i mostly talk in english'
]
trainer=ListTrainer(bot)
trainer.train(convo)
print("Talk to Bot")
while True:
query=input()
if query=='exit':
break
answer=bot.get_response
print("bot : ", answer)
Run Code Online (Sandbox Code Playgroud)
输出 :
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS E:\GIT VS CODE\Py> & D:/Python/python.exe "e:/GIT VS CODE/Py/chatbot.py"
Traceback (most recent call last):
File "e:\GIT VS CODE\Py\chatbot.py", line 4, in <module>
bot = ChatBot("My Bot")
File "D:\Python\lib\site-packages\chatterbot\chatterbot.py", line 34, in __init__
self.storage = utils.initialize_class(storage_adapter, **kwargs)
File "D:\Python\lib\site-packages\chatterbot\utils.py", line 54, in initialize_class
return Class(*args, **kwargs)
File "D:\Python\lib\site-packages\chatterbot\storage\sql_storage.py", line 22, in __init__
from sqlalchemy import create_engine
File "D:\Python\lib\site-packages\sqlalchemy\__init__.py", line 8, in <module>
from . import util as _util # noqa
File "D:\Python\lib\site-packages\sqlalchemy\util\__init__.py", line 14, in <module>
from ._collections import coerce_generator_arg # noqa
File "D:\Python\lib\site-packages\sqlalchemy\util\_collections.py", line 16, in <module>
from .compat import binary_types
File "D:\Python\lib\site-packages\sqlalchemy\util\compat.py", line 264, in <module> time_func = time.clock
AttributeError: module 'time' has no attribute 'clock'
Run Code Online (Sandbox Code Playgroud)
小智 9
我同意@Glycerine的回答,好吧,如果你不想降级你的python版本,我有另一个解决方案给你。
打开文件 <Python-folder>\Lib\site-packages\sqlalchemy\util\compat.py 转到第 264 行,其中指出:
if win32 or jython:
time_func = time.clock
else:
time_func = time.time
Run Code Online (Sandbox Code Playgroud)
将其更改为:
if win32 or jython:
#time_func = time.clock
pass
else:
time_func = time.time
Run Code Online (Sandbox Code Playgroud)
简单地说,我们在这里避免使用timer.clock方法和time_func对象,因为我看到这个对象只是无缘无故地创建的,并且什么也不做。它刚刚创建并且保持不变。
我不知道为什么即使这个没有用,它仍然存在。但这应该对你有用。
希望有帮助!
你正在运行什么版本的Python?time.clockpy 3.8+ 已被删除
解决方案包括降级 python 或更改源代码:
AttributeError:模块“时间”在 Python 3.8 中没有属性“时钟”
来自 Python 3.8 文档:
函数 time.clock() 自 Python 3.3 起已被弃用,现已被删除:根据您的要求,使用 time.perf_counter() 或 time.process_time() 代替,以获得明确定义的行为。(由 Matthias Bussonnier 在 bpo-36895 中贡献。)
回应您的评论:我假设话匣子开发人员最终会解决这个问题,但是是的,降级到 Python 3.7 将解决这个问题:https ://docs.python.org/3.7/library/time.html#time.clock
自版本 3.3 起已弃用,将在版本 3.8 中删除:此函数的行为取决于平台:根据您的要求,使用 perf_counter() 或 process_time() 代替,以获得明确定义的行为。