【问题标题】:LookupError: unknown encoding: string_escape when running scons commandLookupError:未知编码:运行 scons 命令时的 string_escape
【发布时间】:2019-08-09 07:37:56
【问题描述】:

我正在按照本教程构建 IoTivity Base Android API:

https://wiki.iotivity.org/android_build_instructions#android_example_apps

我从这里下载了 IoTivity 项目:

https://iotivity.org/downloads

我正在使用命令为 Android 构建 IoTivity:

scons TARGET_OS=android

我得到了输出:

scons: Reading SConscript files ... LookupError: unknown encoding:
string_escape:   File
"C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\SConstruct",
line 28:
    SConscript('build_common/SConscript')   File "c:\users\darius\appdata\local\programs\python\python37-32\lib\site-packages\scons\SCons\Script\SConscript.py",
line 667:
    return method(*args, **kw)   File "c:\users\darius\appdata\local\programs\python\python37-32\lib\site-packages\scons\SCons\Script\SConscript.py",
line 604:
    return _SConscript(self.fs, *files, **subst_kw)   File "c:\users\darius\appdata\local\programs\python\python37-32\lib\site-packages\scons\SCons\Script\SConscript.py",
line 285:
    call_stack[-1].globals)   File "C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\build_common\SConscript",
line 559:
    user_prefix = env.get('BUILD_DIR').encode('string_escape')

我在 Windows 机器上,使用命令提示符。

我尝试了这篇文章中的解决方案:

Python 2.7 : LookupError: unknown encoding: cp65001

但这并没有帮助。我是 Python 新手。有人可以帮忙吗?

编辑

改成 Python 2.7.16 后,我现在得到了这个输出:

scons: Reading SConscript files ...

*********************** Error ************************
*                                                    *
* Please make sure that 7-zip is in your System PATH *
*                                                    *
******************************************************

NameError: name 'host_arch' is not defined:   File
"C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\SConstruct",
line 28:
    SConscript('build_common/SConscript')   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
667:
    return method(*args, **kw)   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
604:
    return _SConscript(self.fs, *files, **subst_kw)   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
285:
    call_stack[-1].globals)   File "C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\build_common\SConscript",
line 795:
    env.SConscript(target_os + '/SConscript')   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
604:
    return _SConscript(self.fs, *files, **subst_kw)   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
285:
    call_stack[-1].globals)   File "C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\build_common\android\SConscript",
line 19:
    SConscript('#/extlibs/android/ndk/SConscript')   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
667:
    return method(*args, **kw)   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
604:
    return _SConscript(self.fs, *files, **subst_kw)   File "c:\python27\lib\site-packages\scons\SCons\Script\SConscript.py", line
285:
    call_stack[-1].globals)   File "C:\Users\Darius\Downloads\iotivity-1.3.1.tar\iotivity-1.3.1\iotivity-1.3.1\extlibs\android\ndk\SConscript", line 24:
    if host_arch in ['x86_64']:

我确实将我的 7-zip 文件夹路径添加到 PATH 环境变量并重新启动,但我仍然收到此消息。不知道为什么它甚至是必需的..

【问题讨论】:

  • 你安装的是什么版本的Python?我猜它是 python3.* string_escape 在 python3 中不存在。请尝试在其中安装 python 2.7 和 scons .. py -2 -mpip install -U pip wheel 。然后 py -2 -mpip 安装 scons。您可能需要执行 py -3 -mpip uninstall scons。
  • python 版本 3.7.2

标签: python scons iotivity


【解决方案1】:

查看错误,看起来 iotivity 正在使用 python 3.* 不支持的 string_escape。

然后你需要安装 python 2.7:

py -3 -mpip uninstall scons
py -2 -mpip install -U pip setuptools wheel
py -2 -mpip install scons

然后再试一次。

【讨论】:

  • 我卸载了所有的 pyhton 版本,然后安装了 Python 2.7。当我尝试安装 scons 时,我收到错误消息 c:\Python27\lib\site-packages\pip\_vendor\urllib3\util\ssl_.py:150: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this.
  • 你安装了哪个版本的python 2.7.x?确保您安装了最新的 2.7.x 版本
  • 我更新到最新的2.7.16。现在我收到错误Please make sure that 7-zip is in your System PATH,即使我这样做并重新启动。也给出了错误NameError: name 'host_arch' is not defined:
  • 我将您的日志帖子的格式更改为代码.. 否则它不会维护这些行。 7zip 的问题是 iotivity。我只是一个 SCons 人.. 我会说找到他们的 IRC 频道或邮件列表并将这个问题发送给他们..
  • 您可能希望将此问题标记为已回答并为 7zip 打开一个新问题。
猜你喜欢
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多