Вверх root: AttributeError: у объекта 'module' нет атрибута 'open' - PullRequest
1 голос
/ 27 марта 2020

Кажется вверх root не распознает "открыто". Я использую код из документации;

import uproot 

file = uproot.open("http://scikit-hep.org/uproot/examples/nesteddirs.root")

, который возвращает AttributeError: у объекта 'module' нет атрибута 'open'

Я использую Python 2.7 и выше root 3.10.11, но я также установил виртуальную среду и попробовал другие версии python и root. Я попытался переустановить root, и я попытался открыть другие файлы, все возвращает ту же ошибку.

Есть идеи?

1 Ответ

1 голос
/ 27 марта 2020

Это больше похоже на отчет об ошибке (GitHub Issues), чем на вопрос об использовании (StackOverflow), но даже в отчете об ошибке я не вижу, что может быть не так из описания. Похоже, что во время установки что-то пошло не так, что вы получили модуль с именем "up root" без какого-либо его содержимого. Функция «open» - это первое, что импортируется в модуль «up root» (она определена в «up root .rootio» и импортируется в основное пространство имен «up root» сразу после * 1001). *; т.е. самое раннее, что это может быть).

Вы можете попробовать напечатать dir(uproot), чтобы увидеть, что в нем, хотя я подозреваю, что в нем ничего не будет. Я не знаю, как вы получили модуль с именем root без (всего?) Его содержимого. Вы говорите, что пробовали разные способы установки, но почему-то все они воспроизводят один и тот же сбой установки. Со своей стороны, я не могу воспроизвести это - я не могу заставить это произойти (включая Python 2.7, которому в наши дни уделяется меньше внимания).

На новом Docker изображении без увеличения root установлено, я выполнил pip install uproot и

>>> import uproot
>>> dir(uproot)
['ArrayCache', 'FileSource', 'HTTPSource', 'LZ4', 'LZMA', 'MemmapSource',
 'Pointer', 'STLMap', 'STLString', 'STLVector', 'SimpleArray',
 'ThreadSafeArrayCache', 'XRootDSource', 'ZLIB', '__all__',
 '__builtins__', '__doc__', '__file__', '__name__', '__package__',
 '__path__', '__version__', '_connect', '_help', 'absolute_import',
 'asarray', 'asdebug', 'asdouble32', 'asdtype', 'asgenobj', 'asjagged',
 'asobj', 'asstlbitset', 'asstring', 'astable', 'cache', 'const',
 'create', 'daskarray', 'daskframe', 'http', 'interp', 'interpret',
 'iterate', 'lazyarray', 'lazyarrays', 'newbranch', 'newtree',
 'numentries', 'open', 'pandas', 'recreate', 'rootio', 'source', 'tree',
 'update', 'version', 'write', 'xrootd']

У вас есть возможность установить другие Python пакеты или это просто root?

...