本文部分内容引自:https://blog.csdn.net/weixin_40592798/article/details/89416573
由于上述链接的作者用的是ubuntu系统,并且有些处理方式可用更简单的方法代替。
因此,本篇文章为 python > 3.x 在 windows 环境下的补充、修正和参考。
https://github.com/cosmichut/TextGrocery
由于是解决一系列错误,在解决所有错误之前可以不用运行,直接一气呵成解决。
解决方法是更改anaconda3下的tgrocery文件夹内的文件,
嫌麻烦的也可从该文章直接下载更改后的该资源进行替换!(审核过后会将资源附上)
1.出现错误 No module named 'converter'
原因不再累述。此时进入tgrocery在Anaconda3里windows的目录,C:\**\Anaconda3\Lib\site-packages\tgrocery
找到init.py,更改1-2行 import加点
from .converter import *
from .classifier import *
更正后的init.py head
from .converter import *
from .classifier import *
__all__ = ['Grocery']
class GroceryException(Exception):
pass
2.再次报错 No module named 'cPickle'
不用像文章中讲的那样pip install pickle5,我出现了如下的错误无法安装。
查了资料发现只需要将C:\**\Anaconda3\Lib\site-packages\tgrocery当前目录下的converter.py中的cpikle换成_pickle
import _pickle as cPickle
为了防止再次报错 No module named 'base',同时更改
from .base import *
更正后的converter.py head
from collections import defaultdict
import _pickle as cPickle
import os
import jieba
from .base import *
3.再次报错 SyntaxError: invalid syntax
Traceback (most recent call last):
File "C:\Users\lenovo\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2961, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-8-c42c45694fe3>", line 1, in <module>
from tgrocery import Grocery
File "C:\Users\lenovo\Anaconda3\lib\site-packages\tgrocery\__init__.py", line 1, in <module>
from .converter import *
File "C:\Users\lenovo\Anaconda3\lib\site-packages\tgrocery\converter.py", line 6, in <module>
from .base import *
File "C:\Users\lenovo\Anaconda3\lib\site-packages\tgrocery\base.py", line 54
print self.draw_table(
^
SyntaxError: invalid syntax
打开同一目录下的base.py
更改print函数,即加括号()
更正后的base.py 部分
def show_result(self):
print( self.draw_table(
zip(
['%.2f%%' % (s * 100) for s in self.accuracy_labels.values()],
['%.2f%%' % (s * 100) for s in self.recall_labels.values()]
),
self.accuracy_labels.keys(),
('accuracy', 'recall')
))
4.再次报错 No module named 'converter'
打开同一目录下的classifier.py
from .converter import GroceryTextConverter
from .learner import *
from .base import *
更正后的classifier.py head
import uuid
import os
import shutil
from .converter import GroceryTextConverter
from .learner import *
from .base import *
class GroceryTextModel(object):
5. 究极错误 Error:126