python 为什么Google Colab shell命令不起作用?

ql3eal8s  于 2023-09-29  发布在  Python
关注(0)|答案(5)|浏览(102)

复制步骤:
在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项目。
编辑:
它看起来确实像是覆盖了我的语言环境,就像注解中建议的那样。在导入之前,我可以执行以下操作:

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

但在我得到:

locale.getdefaultlocale()
(None, None)

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

lsmepo6l

lsmepo6l1#

我从一个类似的问题得到了不同的工作
首先检查当前的locale:

import locale
print(locale.getpreferredencoding())

解决方法是创建一个函数,该函数返回所需的本地,即UTF-8

import locale
def getpreferredencoding(do_setlocale = True):
    return "UTF-8"
locale.getpreferredencoding = getpreferredencoding

参考文献:
操作系统模块UTF模式
Locale module

s4chpxco

s4chpxco2#

我得到了同样的错误,运行下面的代码在colab为我工作

import locale
locale.getpreferredencoding = lambda: "UTF-8"

来源:link.

kwvwclae

kwvwclae3#

这是Turicreate的问题。相关问题在这里打开:https://github.com/apple/turicreate/issues/1862
总结如下:在启动时,turicreate将LC_ALL环境变量设置为C()。
解决方法:

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

czfnxgou4#

试试这个:

import locale
locale.getpreferredencoding = lambda: "UTF-8"
!pip install aspose-words
ohtdti5x

ohtdti5x5#

我在跟踪Detectron2 Tutorial时遇到了此错误
并得到“预期的UTF-8”错误。
粘贴代码:
import locale def getpreferredencoding(do_setlocale = True):return“UTF-8”locale.getpreferredencoding = getpreferredencoding
在colab notebook中共享above并运行它为我解决了这个问题。

相关问题