longcw / youdao

基于python 的命令行下查词工具,使用有道api

Home Page:https://pypi.python.org/pypi/youdao

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AttributeError: 'SqliteDatabase' object has no attribute 'drop_table'

shiningdracon opened this issue · comments

Ubuntu 16.04 LTS

$yd -s /path/to/my/dict

Traceback (most recent call last):
File "/usr/local/bin/yd", line 9, in
load_entry_point('youdao==0.3.2', 'console_scripts', 'yd')()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/main.py", line 165, in main
config.prepare()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py", line 55, in prepare
update()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py", line 40, in update
db.drop_table(Word, fail_silently=True)
AttributeError: 'SqliteDatabase' object has no attribute 'drop_table'

Workaround:
由于是全新安装,没有旧 db,所以:
修改 "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py"
注释掉 db.drop_table(Word, fail_silently=True) 这一行

Same problem

index 727bce2..fb0f431 100644
--- a/youdao/config.py
+++ b/youdao/config.py
@@ -37,7 +37,8 @@ def update():
     if config.get('version', '0') < '0.2.0':
         # silent_remove(DB_DIR)
         from model import db, Word
-        db.drop_table(Word, fail_silently=True)
+        if os.path.exists(DB_DIR):
+            db.drop_table(Word, fail_silently=True)
         Word.create_table()