[CMake] Issues with Python, Locale, CTest and MacOS

Michael Jackson mike.jackson at bluequartz.net
Thu Sep 27 14:46:33 EDT 2018


As part of our build we use “mkdocs” to generate our documentation. Last night I thought I made an innocuous change to our CMake files which ended up blowing up all of our macOS builds (10.10 and 10.13 systems). It is all related to trying to get Python/Mkdocs/Click to use a locale that is UTF-8 and not ASCII. 

Part of the error is:

Error 
  File "/usr/local/anaconda3/lib/python3.6/site-packages/click/_unicodefun.py", line 118, in _verify_python3_env
    'for mitigation steps.' + extra)
RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment.  Consult http://click.pocoo.org/python3/for mitigation steps.

This system lists a couple of UTF-8 supporting locales that
you can pick from.  The following suitable locales where
discovered: af_ZA.UTF-8, am_ET.UTF-8, be_BY.UTF-8, bg_BG.UTF-8, ca_ES.UTF-8, cs_CZ.UTF-8, da_DK.UTF-8, de_AT.UTF-8, de_CH.UTF-8, de_DE.UTF-8, el_GR.UTF-8, en_AU.UTF-8, en_CA.UTF-8, en_GB.UTF-8, en_IE.UTF-8, en_NZ.UTF-8, en_US.UTF-8, es_ES.UTF-8, et_EE.UTF-8, eu_ES.UTF-8, fi_FI.UTF-8, fr_BE.UTF-8, fr_CA.UTF-8, fr_CH.UTF-8, fr_FR.UTF-8, he_IL.UTF-8, hr_HR.UTF-8, hu_HU.UTF-8, hy_AM.UTF-8, is_IS.UTF-8, it_CH.UTF-8, it_IT.UTF-8, ja_JP.UTF-8, kk_KZ.UTF-8, ko_KR.UTF-8, lt_LT.UTF-8, nl_BE.UTF-8, nl_NL.UTF-8, no_NO.UTF-8, pl_PL.UTF-8, pt_BR.UTF-8, pt_PT.UTF-8, ro_RO.UTF-8, ru_RU.UTF-8, sk_SK.UTF-8, sl_SI.UTF-8, sr_YU.UTF-8, sv_SE.UTF-8, tr_TR.UTF-8, uk_UA.UTF-8, zh_CN.UTF-8, zh_HK.UTF-8, zh_TW.UTF-8

The whole build can be found at <https://my.cdash.org/viewBuildError.php?buildid=1534910>

The _only_ way I seem to be able to get this to work is to use the built in python 2.7 at /usr/bin/python on the systems. I tried anaconda3 and python.org and neither of those worked. I can't be the only person to encounter this issue in CTest on a mac? If I build from the command line everything works just fine no matter which Python distribution that I use. The Ctest script is launched through "launchd" on the mac. I have exported environment variables, set environment variables for the locale in each bash script file that gets called? I am just plain out of ideas. 

Thanks for any help.

--
Michael Jackson | Owner, President
      BlueQuartz Software
[e] mike.jackson at bluequartz.net
[w] www.bluequartz.net <http://www.bluequartz.net>




More information about the CMake mailing list