python3.6下调用googletrans翻译超时报错问题解决(改为py_translator+修改源码)

本文主要是介绍python3.6下调用googletrans翻译超时报错问题解决(改为py_translator+修改源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在最前面:

 

由于经常用到Google翻译,想着使用python调用googletrans进行翻译。

很简单的调用,看代码

from py_translator import Translator
s = Translator().translate(text='Hello my friend',dest='zh-cn').text
print(s)

然后控制台一直没反应,等了好久超时。

网上找了一圈,类似这种报错的

Traceback (most recent call last):File "<pyshell#2>", line 1, in <module>translator.translate('안녕하세요.')File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 172, in translatedata = self._translate(text, dest, src)File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 75, in _translatetoken = self.token_acquirer.do(text)File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 180, in doself._update()File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 59, in _updatecode = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '')
AttributeError: 'NoneType' object has no attribute 'group'

我一开始也遇到过,当时我的代码是

from googletrans import Translator 
translator = Translator(service_urls=['translate.google.cn']) 
source = '我还是不开心!' 
text = translator.translate(source,src='zh-cn',dest='en').text 
print(text)

这是网上的例子,有大神给出的解决办法是

$ pip uninstall googletrans
$ git clone https://github.com/BoseCorp/py-googletrans.git
$ cd ./py-googletrans
$ python setup.py install

其实不用这么复杂,只要这里改一下即可

translator = Translator() 

这样的确是不报错了,可是超时

 

然后又有一位大神说,不要用googletrans,要用py_translator==1.8.9

至于版本一定要用1.8.9么,我没有验证过,有兴趣的同学可以研究下

$ pip3 install py_translator==1.8.9 

注意,此时的调用应该是

from py_translator import Translator

还是超时!!!

 

其实应该修改源码,把py_translator中的gtoken.py,urls.py 和client.py中的 translate.google.com 修改为 translate.google.cn即可

运行一下

朋友你好

修改源码不用讲了吧,找到py_translator中的gtoken.py,urls.py 和client.py,用文本编辑框改一下即可,举个栗子

def __init__(self, tkk='0', session=None, host='translate.google.com'):self.session = session or requests.Session()self.tkk = tkkself.host = host if 'http' in host else 'https://' + host

translate.google.com

改为

translate.google.cn

记得三个都要改,注释的可以不改,都改了最好。

我怎么这么啰嗦。

 

这篇关于python3.6下调用googletrans翻译超时报错问题解决(改为py_translator+修改源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657400

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.