为啥 Google Colab shell 命令不起作用?

Posted

技术标签:

【中文标题】为啥 Google Colab shell 命令不起作用?【英文标题】:Why are Google Colab shell commands not working?为什么 Google Colab shell 命令不起作用? 【发布时间】:2019-09-28 13:59:20 【问题描述】:

重现步骤:

在 GPU 上打开新的 Colab 笔记本

!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 项目中作为潜在问题发布。

编辑:

它看起来确实像 cmets 中建议的那样覆盖了我的语言环境。在导入之前我可以这样做:

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

但是在我得到之后:

locale.getdefaultlocale()
(None, None)

虽然我不知道如何重置语言环境,因为我已经失去了对 shell 命令的使用?

【问题讨论】:

Colab 期望在具有 UTF-8 语言环境的环境中运行;你的不是。您可以使用locale 命令从终端设置区域设置。 相关unix.stackexchange.com/questions/149111/… @snakecharmerb 你在正确的轨道上,对问题进行了更新 【参考方案1】:

这是 Turicreate 的一个问题。 相关问题在这里打开:https://github.com/apple/turicreate/issues/1862

总结是:启动时turicreate sets the LC_ALL environment variable to C ()。

解决方法:

import turicreate as tc
import os
del os.environ['LC_ALL']

【讨论】:

好吧,我是打开这个问题的人;)虽然我也应该在这里发布答案。谢谢。

以上是关于为啥 Google Colab shell 命令不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Google Colab 运行速度比 Jupyterlab 快,Google Colab 为啥以及如何运行?

为啥 Google Colab 说我有太多会话?

为啥 Google Colab TPU 和我的电脑一样慢?

为啥该代码段无法在 Google Colab 上运行?

为啥 gpu 在 google colab 中停止为我工作?

为啥我无法在 Google Colab 中导入 python-rosbag?