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

如何在Heroku中安装pt_BR.utf8本地化语言包?

解决Heroku上Python本地化设置(pt_BR.utf8)问题

问题背景

Heroku默认本地化语言为英文(en),需在Python函数中通过本地化设置完成美元(USD)到巴西雷亚尔(BRL)的货币格式转换,但始终无法成功安装pt_BR.utf8本地化包。尝试过pip、apt-get、export命令均无效,计划尝试容器化部署但不了解操作流程。

已尝试操作

# 添加Heroku本地化buildpack
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-locale

# 创建仅包含pt_BR的.locales文件

$ git add .
$ git commit -m"locale pt_BR"
$ git push heroku master --force

可行解决方法

方法一:修复现有buildpack配置

  1. 修正.locales文件内容:确保文件内填写完整的本地化标识pt_BR.utf8,而非仅pt_BR。
  2. 调整buildpack执行顺序:本地化buildpack需要在Python buildpack之前运行,执行以下命令重置顺序:
    heroku buildpacks:clear
    heroku buildpacks:add https://github.com/heroku/heroku-buildpack-locale
    heroku buildpacks:add heroku/python
    
  3. 验证本地化安装:部署完成后,在Heroku控制台执行locale -a,确认输出中包含pt_BR.utf8。
  4. Python代码中指定本地化:
    import locale
    
    # 初始化本地化设置
    try:
        locale.setlocale(locale.LC_ALL, 'pt_BR.utf8')
    except locale.Error:
        # 降级方案,避免部署失败
        locale.setlocale(locale.LC_ALL, '')
    
    # 货币格式化示例
    usd_amount = 100
    brl_amount = usd_amount * 5.2  # 替换为实际汇率逻辑
    formatted_brl = locale.currency(brl_amount, symbol=True, grouping=True)
    print(formatted_brl)  # 输出类似 R$ 520,00
    

方法二:容器化部署(推荐,环境可控)

  1. 编写Dockerfile:
    FROM python:3.9-slim
    
    # 安装并生成pt_BR本地化
    RUN apt-get update && apt-get install -y locales --no-install-recommends && \
        sed -i 's/# pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/' /etc/locale.gen && \
        locale-gen pt_BR.UTF-8 && \
        apt-get clean && rm -rf /var/lib/apt/lists/*
    
    # 设置全局本地化环境变量
    ENV LANG pt_BR.UTF-8
    ENV LC_ALL pt_BR.UTF-8
    
    WORKDIR /app
    
    # 安装Python依赖
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    # 复制应用代码
    COPY . .
    
    # 启动应用(替换为你的启动命令)
    CMD ["python", "main.py"]
    
  2. 创建heroku.yml配置文件:
    build:
      docker:
        web: Dockerfile
    
  3. 提交并部署:
    git add Dockerfile heroku.yml requirements.txt
    git commit -m"容器化部署,添加pt_BR本地化支持"
    git push heroku master
    
  4. 验证环境:在Heroku控制台执行locale,确认LANG和LC_ALL均为pt_BR.UTF-8。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:08:18