Уведомления

Группа в Telegram: @pythonsu

#1 Июль 22, 2015 21:51:24

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Ошибка импорта

Установил python-docx.
Написал такой код:

#!/usr/bin/python3
from docx import Document as docx_parser
doc_obj=docx_parser('/home/pete/work/orig all - ru.docx')
doc_text='\n\n'.join([paragraph.text for paragraph in doc_obj.paragraphs])

Почему
Python 3.4.2 (default, Oct  8 2014, 13:14:40) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from docx import Document as docx_parser
проходит, а при попытке запустить код из файла (tst100.py) я получаю
Traceback (most recent call last):
  File "./tst100.py", line 3, in <module>
    from docx import Document as docx_parser
ImportError: cannot import name 'Document'
?

Отредактировано vanvanov (Июль 22, 2015 22:04:09)

Офлайн

#2 Июль 22, 2015 23:08:26

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Ошибка импорта

Вот что интересно: python-docx обновил свой API, теперь вместо старого

from docx import opendocx as docx_parser
должно быть
from docx import Document as docx_parser
Однако, из питоновской консоли работает только новый импорт (Document), а из программы - только старый (opendocx)! Как мне везде обеспечить работу нового API?

Устанавливал python-docx я с помощью sudo python3 setup.py install. Система Debian Jessie.

Отредактировано vanvanov (Июль 22, 2015 23:09:10)

Офлайн

#3 Июль 22, 2015 23:27:27

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Ошибка импорта

vanvanov
Проверяйте версии модуля который работает в коде и в консоли.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Июль 23, 2015 00:11:13

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Ошибка импорта

JOHN_16
vanvanovПроверяйте версии модуля который работает в коде и в консоли.
Согласно pkg_resources, и в консоли, и отдельно работают python-docx 0.8.5 (а не устаревший docx).

Офлайн

#5 Июль 23, 2015 05:30:49

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Ошибка импорта

В общем то имелось ввиду:

import docx
print(docx.__version__)
А случаем рядом с вашим файлом нету других docx.py файлов или тп?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Июль 23, 2015 05:45:22

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Ошибка импорта

JOHN_16
А случаем рядом с вашим файлом нету других docx.py файлов или тп?
Да, действительно, в /usr/local/bin лежал docx.py. Обидно, ведь про это я уже нагуглил, но не придал этому значения, поскольку забыл, что раньше уже пытался установить этот модуль. Теперь работает, спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version