Django项目集成django-google-translate时模块导入失败求助
解决django-google-translate导入'translate'失败的问题
报错原因
这个错误是因为django-google-translate 1.1版本的内部应用配置存在问题,它的apps.py里的TranslateConfig.name设置成了不存在的translate模块,导致Django无法正确识别应用。
解决方法
修改包内部配置文件
找到Python环境中site-packages/google_translate目录下的apps.py文件,打开后将name字段的值从translate改为google_translate:from django.apps import AppConfig class TranslateConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'google_translate' # 这里改成google_translate保存后重启Django服务,应该就能解决导入问题。
降级包版本
如果修改源码后仍有其他兼容问题,直接卸载当前版本,安装更早的稳定版本:pip uninstall django-google-translate -y pip install django-google-translate==1.0安装完成后重新配置INSTALLED_APPS和模板标签,再测试功能。
直接使用谷歌官方嵌入代码(推荐)
第三方包可能存在维护不及时的问题,直接用谷歌翻译的官方嵌入代码更稳定,无需依赖任何Django包。在你的模板文件(比如base.html)中添加以下代码:<!-- 放置在页面需要显示翻译按钮的位置 --> <div id="google_translate_element"></div> <script type="text/javascript"> function googleTranslateElementInit() { new google.translate.TranslateElement({ pageLanguage: 'zh', // 设置你的页面默认语言 includedLanguages: 'en,fr,ja', // 可选,指定支持的语言 layout: google.translate.TranslateElement.InlineLayout.SIMPLE }, 'google_translate_element'); } </script> <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>这种方式直接调用谷歌官方接口,兼容性和稳定性都更好。
内容的提问来源于stack exchange,提问作者ashraf sadik
相关产品推荐
相关产品推荐

