Форум сайта python.su
Я только несколько месяцев, как начал познавать программирования. Так что прошу прошение у всех кому мой вопрос покажется глупым. Изучаю книгу “Автоматизация рутинных задач при помощи Python”. При использовании модуля openpyxl возникла ошибка. Код и ошибка приведены ниже.
Код:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
Ошибка:
Traceback (most recent call last):
File “C:\Disk_D\Programming\Автоматизация рутинных задач\ПОПЫТКА работы с документами\модуль openpyxl.py”, line 2, in <module>
wb = openpyxl.load_workbook('example.xlsx') # - НЕ РАБОТАЕТ!!!
File “C:\Users\Админ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\openpyxl\reader\excel.py”, line 174, in load_workbook
src = archive.read(ARC_CONTENT_TYPES)
File “C:\Users\Админ\AppData\Local\Programs\Python\Python36-32\lib\zipfile.py”, line 1314, in read
with self.open(name, “r”, pwd) as fp:
File “C:\Users\Админ\AppData\Local\Programs\Python\Python36-32\lib\zipfile.py”, line 1352, in open
zinfo = self.getinfo(name)
File “C:\Users\Админ\AppData\Local\Programs\Python\Python36-32\lib\zipfile.py”, line 1281, in getinfo
‘There is no item named %r in the archive’ % name)
KeyError: "There is no item named '.xml' in the archive"
Офлайн
Может ли быть проблема в не верно установленном модуле и если да, то как ее решить?
Офлайн
fejaninДумаю нет. Что там можно неправильно поставить?
Может ли быть проблема в не верно установленном модуле
Офлайн
Изменил расположение файлов, как вы рекомендовали.
Ошибка теперь выглядит следующим образом:
Traceback (most recent call last):
File “C:\Disk_D\XLXS_DOC\openpyxl.py”, line 1, in <module>
import openpyxl
File “C:\Disk_D\XLXS_DOC\openpyxl.py”, line 2, in <module>
wb = openpyxl.load_workbook('example.xlsx')
AttributeError: module ‘openpyxl’ has no attribute ‘load_workbook’
Буду благодарен за любой дельный совет.
Офлайн
сдеклайте
>>>python >import openpyxl >dir(openpyxl)
Офлайн
Резултат: ‘LXML’, ‘NUMPY’, ‘PANDAS’, ‘Workbook’, ‘__author__’, ‘__author_email__’, ‘__builtins__’, ‘__cached__’, ‘__doc__’, ‘__file__’, ‘__license__’, ‘__loader__’, ‘__maintainer_email__’, ‘__name__’, ‘__package__’, ‘__path__’, ‘__spec__’, ‘__url__’, ‘__version__’, ‘cell’, ‘chart’, ‘chartsheet’, ‘comments’, ‘compat’, ‘constants’, ‘descriptors’, ‘drawing’, ‘formatting’, ‘formula’, ‘here’, ‘json’, ‘load_workbook’, ‘os’, ‘packaging’, ‘reader’, ‘src’, ‘src_file’, ‘styles’, ‘utils’, ‘workbook’, ‘worksheet’, ‘writer’, ‘xml’
Отредактировано fejanin (Янв. 20, 2018 15:55:58)
Офлайн
FishHook, решил поэксперементировать с твоим советом и получил следующий результат:
- ниже приведен измененный код:
import openpyxl
print(dir(openpyxl))
wb = openpyxl.load_workbook('example.xlsx')
А вот что я получил:
'__builtins__', ‘__cached__’, ‘__doc__’, ‘__file__’, ‘__loader__’, ‘__name__’, ‘__package__’, ‘__spec__’, ‘openpyxl’
Traceback (most recent call last):
File “C:\Disk_D\XLXS_DOC\openpyxl.py”, line 1, in <module>
import openpyxl
File “C:\Disk_D\XLXS_DOC\openpyxl.py”, line 3, in <module>
wb = openpyxl.load_workbook('example.xlsx')
AttributeError: module ‘openpyxl’ has no attribute ‘load_workbook’
Квадратные скобки убрал, иначе текст не отображается.
Честно сказать мне совершенно непонятно почему в одних случаях он видит ‘load_workbook’,
а в других нет.
Офлайн
fejanin
Вероятно, у тебя несколько питонов установлено. Разберись, каким именно интерперетатором ты запускаешь код и когда надо писать openpyxl.load_workbook, а когда openpyxl.openpyxl.load_workbook
Офлайн
Питон установлен однозначно ОДИН, но поигрюсь с кодом и отпишусь. Заранее спасибо за помощь!
Офлайн
Не очень понятно что вы импортируете
Было
fejaninСтало:
модуль openpyxl.py
fejaninЯ так понимаю теперь вы назвали свой модуль как системный, чего тут удивляться что у вас то одно то другое импортируется в зависимости от порядка путей в конфигруации запуска.
\XLXS_DOC\openpyxl.py
Офлайн