Похоже, что проблема не имеет ничего общего с датируемыми. Посмотрите на трассировку:
Traceback (most recent call last):
File "/git/corona/python/pointr/experiments/python/datatable.py", line 18, in <module>
import datatable as dt
File "/git/corona/python/pointr/experiments/python/datatable.py", line 19, in <module>
print(f'datatable version={dt.__version__}')
AttributeError: module 'datatable' has no attribute '__version__'
Не кажется ли вам подозрительным, что у вас есть линия 18, "вызывающая" линию 19? Я имею в виду, как это может быть? Вот как:
Когда вы называете свой скрипт datatable.py
, а затем делаете import datatable
, тогда вместо импорта фактического модуля из пакетов сайта он импортирует datatable.py «module». По сути, файл импортирует сам. И способ python управления импортом заключается в том, что он сначала создает модуль-заглушку в sys.modules
(чтобы предотвратить бесконечные рекурсии во время импорта). В вашем случае модуль пытается импортировать сам себя, поэтому вместо него извлекается модуль-заглушка, а затем, когда вы пытаетесь напечатать его переменную __version__
, оказывается, что она не существует.
Вы можете проверить вместо этого выведите dt.__file__
, который должен показать местоположение импортируемого файла.
Излишне говорить, что все это c никак не указывает на наличие данных; например, если вы создали файл numpy.py
, а затем попытались import numpy
, у вас возникли бы те же проблемы.