You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Docker容器中Ubuntu 14.04安装PyMC失败,Mac OS可正常运行

解决Docker中Ubuntu 14.04安装PyMC的UnicodeDecodeError问题

我之前也碰到过完全一样的问题,根源在于Ubuntu 14.04容器的系统默认编码是ASCII,而PyMC安装时读取pymc/flib.f这个Fortran文件里包含了非ASCII字节,用ASCII解码就会失败;Mac系统默认用UTF-8编码,所以不会触发这个错误。

下面是具体的解决步骤:

  • 临时设置UTF-8编码(安装前执行)
    在容器的终端里先运行这两条命令,强制当前会话使用UTF-8编码:

    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    
  • 持久化编码设置(可选,避免每次启动容器都要重新设置)
    编辑/etc/environment文件,添加以下两行:

    LC_ALL=en_US.UTF-8
    LANG=en_US.UTF-8
    

    保存后可以重启容器,或者执行source /etc/environment让设置立即生效。

  • 确保安装UTF-8语言包
    有些Ubuntu 14.04镜像可能没预装en_US.UTF-8语言支持,执行以下命令安装:

    apt-get update && apt-get install -y language-pack-en-base
    
  • 重新安装PyMC
    完成以上设置后,再执行安装命令即可:

    pip install pymc
    

    如果是从源码安装,进入源码目录后执行:

    python setup.py install
    

简单说下原理:Mac OS一直默认使用UTF-8作为系统编码,处理带非ASCII字符的文件毫无压力;但Ubuntu 14.04的默认LC系列环境变量是ASCII,当PyMC安装脚本读取包含非ASCII字节的Fortran文件时,用ASCII解码就会抛出UnicodeDecodeError

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

火山引擎 最新活动