#anaconda #lxml #conda #python-pptx
#anaconda #lxml #conda #python-pptx
Вопрос:
Я столкнулся с проблемой, когда устанавливал python-pptx с помощью conda в очищенной среде: conda install -c conda-forge python-pptx. После успешного завершения установки я попытался импортировать модуль pptx и получил следующую ошибку:
>>> import pptx Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:UsersSazonovEOAppDataLocalContinuumanaconda3envsnewlibsite-p ackagespptx__init__.py", line 13, in <module> from pptx.api import Presentation # noqa File "C:UsersSazonovEOAppDataLocalContinuumanaconda3envsnewlibsite-p ackagespptxapi.py", line 17, in <module> from .package import Package File "C:UsersSazonovEOAppDataLocalContinuumanaconda3envsnewlibsite-p ackagespptxpackage.py", line 13, in <module> from .opc.package import OpcPackage File "C:UsersSazonovEOAppDataLocalContinuumanaconda3envsnewlibsite-p ackagespptxopcpackage.py", line 13, in <module> from .oxml import CT_Relationships, serialize_part_xml File "C:UsersSazonovEOAppDataLocalContinuumanaconda3envsnewlibsite-p ackagespptxopcoxml.py", line 12, in <module> from lxml import etree ImportError: DLL load failed: Не найден указанный модуль.
Но если бы я установил эту библиотеку (python-pptx) с помощью pip, подобного этому (также в новую очищенную среду):
pip install python-pptx
это работает.
У меня есть следующие версии: версия python — 3.7.1, python-pptx-0.6.17, lxml-4.3.0.
У вас есть какие-либо идеи по поводу этой проблемы?
Комментарии:
1. Странно, вы говорите, что у вас есть
lxml
, и это указано вpython-pptx
рецепте в качестве требования, но Python говорит, что не может его найти. Можете ли выimport lxml
использовать эту среду или это тоже сбой? Если вы проверитеsys.path
на Python, находитсяlxml
в одном из этих каталогов?2.
lxml
является оболочкой Python дляlib2xml
иlibxslt
. Я полагаю, что это библиотеки DLL в Windows, что может означать, что они не могут быть найденыlxml
в среде anaconda по какой-то причине (возможно, связанной с PATH). Тот факт, что в сообщениях об ошибках говорится «Ошибка загрузки DLL», а не «Нет модуля с именем lxml», указывает на то, что поискlxml
модуля не является непосредственной проблемой. Возможно, стоит попробоватьconda install lxml
или какую-то другую команду для переустановки lxml в anaconda, чтобы посмотреть, подключается ли это к базовым C-библиотекам. Также это может помочь: github.com/sci-bots/microdrop/issues/246
Ответ №1:
Переустановка lxml из pkgs / main channel из репозитория anaconda позволяет обойти проблему:
conda install lxml
Следующие пакеты будут ОБНОВЛЕНЫ:
libxml2 conda-forge::libxml2-2.9.8-h9ce36c8_1~ —> pkgs/main::libxm l2-2.9.9-h464c3ec_0 libxslt
conda-forge::libxslt-1.1.32-heafd4d3_ ~ —> pkgs/main ::libxs lt-1.1.33-h579f668_0Следующие пакеты будут заменены каналом с более высоким приоритетом: … lxml
conda-forge::lxml-4.3.2-py37heafd4d3_0 —> pkgs/main::lxml- 4.3.2-py37h1350720_0 …
Комментарии:
1. Спасибо @Scanny за ваш комментарий выше
Ответ №2:
Прежде всего, попробуйте следующую команду в вашем терминале, чтобы включить conda-forge:
conda config --add channels conda-forge
Во-вторых, запустите следующую команду и через некоторое время введите [y]:
conda install python-pptx