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

相关文章

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

Spring三级缓存解决循环依赖的解析过程

《Spring三级缓存解决循环依赖的解析过程》:本文主要介绍Spring三级缓存解决循环依赖的解析过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、循环依赖场景二、三级缓存定义三、解决流程(以ServiceA和ServiceB为例)四、关键机制详解五、设计约

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案