Почему не работают команды оболочки Google Colab?

Действия по воспроизведению:

Откройте новый ноутбук Colab на GPU

!ls #works
!pip install -q turicreate
import turicreate as tc
!ls #doesn't work

Я получаю следующую ошибку:

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-22-16fdbe588ee8> in <module>()
----> 1 get_ipython().system('ls')
      2 # !nvcc --version

2 frames
/usr/local/lib/python3.6/dist-packages/google/colab/_system_commands.py in _run_command(cmd, clear_streamed_output)
    165   if locale_encoding != _ENCODING:
    166     raise NotImplementedError(
--> 167         'A UTF-8 locale is required. Got {}'.format(locale_encoding))
    168 
    169   parent_pty, child_pty = pty.openpty()

NotImplementedError: A UTF-8 locale is required. Got ANSI_X3.4-1968

К сожалению, для меня это не имеет большого смысла, почему это происходит. Есть зацепки? Я также опубликую как потенциальную проблему в проекте turicreate.

РЕДАКТИРОВАТЬ:

Похоже, что он переопределяет мою локаль, как было предложено в комментариях. Перед импортом я могу:

import locale
locale.getdefaultlocale()
(en_US, UTF-8)

Но после того, как я получу:

locale.getdefaultlocale()
(None, None)

Хотя я не уверен, как сбросить языковой стандарт теперь, когда я потерял использование команд оболочки?


person Frankie    schedule 10.05.2019    source источник
comment
Ожидается, что Colab будет работать в среде с языковым стандартом UTF-8; твоего нет. Вы можете установить языковой стандарт из терминала с помощью команды locale.   -  person snakecharmerb    schedule 10.05.2019
comment
Соответствующий unix.stackexchange.com/questions/149111/   -  person snakecharmerb    schedule 10.05.2019
comment
@snakecharmerb Вы на правильном пути, обновили проблему   -  person Frankie    schedule 10.05.2019


Ответы (1)


Это проблема Turicreate. Соответствующий вопрос открывается здесь: https://github.com/apple/turicreate/issues/1862

Сводка такова: при запуске turicferrer sets ". переменную среды LC_ALL в C ().

Обходной путь для этого:

import turicreate as tc
import os
del os.environ['LC_ALL']
person Sangeet    schedule 04.06.2019
comment
Что ж, я тот, кто открыл этот вопрос;) Хотя я должен был также разместить ответ здесь. Спасибо. - person Frankie; 05.06.2019