You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python批量调用Google Translate翻译图片时遇‘google模块未找到’错误

解决ModuleNotFoundError: No module named 'google'及图片批量翻译代码修正

1. 解决模块缺失问题

错误因未安装Google Cloud相关Python SDK导致,执行以下命令安装依赖:

pip install google-cloud-translate google-cloud-vision pillow

若环境中Python 2和3共存,改用pip3确保安装到Python 3环境。

2. 代码修正及完整实现

原代码存在方法不存在、未导入必要模块、路径转义、缺少认证等问题,以下是可运行的修正版本:

import os
import io
from google.cloud import translate_v2 as translate
from google.cloud import vision
from PIL import Image, ImageDraw, ImageFont

# 配置参数(用原始字符串避免Windows路径转义问题)
input_dir = r"D:\e\homework\manga doujins and hentai\[Shuuki] Onechan ga wakan nai! 1"
output_dir = r"D:\e\homework\manga doujins and hentai\[Shuuki] Onechan ga wakan nai! 1\translated"
target_language = "fr"  # Google翻译用标准语言代码,法语为fr而非french

# 创建输出目录(不存在则自动创建)
os.makedirs(output_dir, exist_ok=True)

# 配置Google Cloud认证(替换为你的服务账号密钥文件路径)
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/your-service-account-key.json"

# 初始化API客户端
translate_client = translate.Client()
vision_client = vision.ImageAnnotatorClient()

# 遍历目录内的图片文件
for filename in os.listdir(input_dir):
    # 仅处理常见图片格式
    if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp')):
        file_path = os.path.join(input_dir, filename)
        
        # 调用Vision API识别图片文字
        with io.open(file_path, 'rb') as image_file:
            content = image_file.read()
        image = vision.Image(content=content)
        text_response = vision_client.text_detection(image=image)
        texts = text_response.text_annotations
        
        # 无文字则直接复制原图片
        if not texts:
            print(f"{filename}未检测到文字,直接复制原文件")
            with open(file_path, 'rb') as src, open(os.path.join(output_dir, filename), 'wb') as dst:
                dst.write(src.read())
            continue
        
        # 翻译识别到的文字
        original_text = texts[0].description
        translation_result = translate_client.translate(original_text, target_language=target_language)
        translated_text = translation_result['translatedText']
        
        # 打开图片并绘制翻译后的文字(基础实现,可根据需求优化字体、位置)
        img = Image.open(file_path)
        draw = ImageDraw.Draw(img)
        # 替换为本地字体路径,例如Windows系统的微软雅黑:r"C:\Windows\Fonts\msyh.ttc"
        font = ImageFont.truetype("arial.ttf", 20)
        
        # 覆盖原文字区域并绘制翻译内容(简单处理,精准匹配需遍历单个文字块坐标)
        draw.rectangle([(0, 0), img.size], fill='white')
        draw.text((10, 10), translated_text, font=font, fill='black')
        
        # 保存翻译后的图片
        img.save(os.path.join(output_dir, filename))
        print(f"{filename}翻译完成")

3. 关键注意事项

  • Google Cloud认证:需在Google Cloud控制台创建服务账号,下载密钥JSON文件,替换代码中的密钥路径。
  • 语言代码:Google翻译API使用标准语言代码,如英语en、日语ja,而非语言全称。
  • 图片处理优化:上述代码为基础实现,如需精准匹配原文字位置替换,可遍历texts列表中的每个元素获取坐标,逐个处理文字块。

内容的提问来源于stack exchange,提问作者YeetDabMcFapDab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:30:35