SyntaxError: (ошибка Unicode) кодек «unicodeescape» не может декодировать байты в позиции 292-293: усеченный \ UXXXXXXXX экранировать во время импорта - PullRequest
0 голосов
/ 08 мая 2018

Код:

import os
import random
import time
import requests
from appetizer import Appetizer

Результат:

    Traceback (most recent call last):
  File "C:/GITHUB/stress_testing/main.py", line 5, in <module>
    from appetizer import Appetizer
  File "C:\GITHUB\stress_testing\venv\lib\site-packages\appetizer\__init__.py", line 17, in <module>
    from .appetizer import Appetizer
  File "C:\GITHUB\stress_testing\venv\lib\site-packages\appetizer\appetizer.py", line 76
            """
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 292-293: truncated \UXXXXXXXX escape

76 в файле appetizer.py:

 def detect_adb(self):
        """ Detect the path to the adb tool from the Android SDK

        :return: A JSON object. For example: {'adb': '/home/myuser/Android/Sdk/platform-tools/adb'}

        Note that the path could be a unicode string.
        The default installation paths for different OSes are:
        Windows: C:\Users\<User Name>\AppData\Local\Android\sdk\platform-tools\
        Linux: /home/<User Name>/Android/Sdk/platform-tools/adb
        """
        return json.loads(self.appetizer.check_output(["adb", "detectadb"]))

Я знаю о "\" (double"\" в пути для Windows), "/" и так далее.Но здесь у меня ошибка до того, как я что-то сделал - на стадии импорта.Что я должен изменить и где?Я пробовал с виртуальным env и common.

1 Ответ

0 голосов
/ 08 мая 2018

Это на самом деле говорит вам, что не так. В вашем определении функции в строке 76 вашего кода есть экранированный символ \ uxxxxxxx недопустимой длины в позиции 292-293.

Будет работать следующее:

stri = """ Detect the path to the adb tool from the Android SDK

    :return: A JSON object. For example: {'adb': '/home/myuser/Android/Sdk/platform-tools/adb'}

    Note that the path could be a unicode string.
    The default installation paths for different OSes are:
    Windows: C:\\Users\<User Name>\AppData\Local\Android\sdk\platform-tools\
    Linux: /home/<User Name>/Android/Sdk/platform-tools/adb
    """
stri[292] #'\\'
stri[293] #'U'

Принимая во внимание:

stri = """ Detect the path to the adb tool from the Android SDK

    :return: A JSON object. For example: {'adb': '/home/myuser/Android/Sdk/platform-tools/adb'}

    Note that the path could be a unicode string.
    The default installation paths for different OSes are:
    Windows: C:\Users\<User Name>\AppData\Local\Android\sdk\platform-tools\
    Linux: /home/<User Name>/Android/Sdk/platform-tools/adb
    """
#SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 292-293: truncated \UXXXXXXXX escape

Причина такого поведения заключается в том, что (пожалуйста, укажите соответствующий пакет в следующий раз) replay-kit написан для Python 2.7, где '\U' пройдет без заминки. Вам нужно будет проверить исходный код и заменить такие последовательности на двойной или обратный слеш вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...