python, windows 7: ImportError: невозможно импортировать имя X - PullRequest
0 голосов
/ 30 мая 2018

Я работаю с двумя файлами: construct\core.py и USBtransport.py.Ниже приведен соответствующий код из обоих файлов:

construct \ core.py:

class Range(Subconstruct):  
    __slots__ = ["min", "max"]
    def __init__(self, min, max, subcon):
        super(Range, self).__init__(subcon)
        self.min = min
        self.max = max
....

, где Subconstruct является подклассом Construct, которые оба были определены ранее в коде.

USBtransport.py:

from construct import Subconstruct
from construct import (
Bytes, Container, Embedded, Enum, ExprAdapter, Int16ul, Int32ul, Pass, 
Struct, Range,
)

Я сталкиваюсь с этой ошибкой при попытке запустить USBtransport.py:

ImportError: cannot import name 'Range'

Я просматривал похожие сообщения об этой ошибке, и они кажутсявсе проистекает из кругового импорта.Однако я не думаю, что это проблема здесь, поскольку core.py никогда не вызывает никаких классов из USBtransport.py.Я также могу импортировать другие Subconstruct объекты из core.py без проблем.

Я также не думаю, что ошибка проистекает из кода внутри класса Range(Subconstruct), поскольку я получаю ту же ошибку, когда закомментирую весь код внутри и просто пытаюсь импортировать пустой класс.

Есть идеи?

1 Ответ

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

Вы уверены, что используете правильную версию Construct ?

Согласно https://construct.readthedocs.io/en/latest/transition29.html, Range был удален в 2.9, так что вы можете захотетьустановить 2.8.x.

Диапазон удален, GreedyRange не поддерживает синтаксис [:]

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