LookupError: неизвестная кодировка: string_escape при запуске команды scons - PullRequest
0 голосов
/ 18 марта 2019

Я следую этому руководству по созданию API IoTtivation Base Android:

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

Я скачал проект IoTctivity отсюда:

https://iotivity.org/downloads

Я нахожусь на этапе, где я использую команду для создания IoTctivity для Android:

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: неизвестная кодировка: cp65001

Но это не помогло. Я новичок в Python. Может кто-нибудь помочь?

EDIT

После перехода на 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 и перезапустил, но все равно получаю это сообщение. Не уверен, почему это даже требуется, хотя ..

1 Ответ

1 голос
/ 19 марта 2019

Глядя на ошибку, похоже, что iotivity использует string_escape, который не поддерживается в python 3. *.

Вам нужно будет установить python 2.7, затем:

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

Тогда попробуйте еще раз.

...