Я наткнулся на загадку с помощью ноутбука Jupyter в Анаконде на Ма c. Моя настройка:
MacOS Catalina 10.15.3 (default shell zsh)
Anaconda-Navigator 1.9.12
Jupyter-client 5.3.4
Jupyter-console 6.1.0
Jupyter-core 4..1
По сути, у меня есть код Python для извлечения текста из старого документа Word. Код использует библиотеку textract (https://textract.readthedocs.io/en/latest/index.html). К сожалению, эта библиотека не включена в Anaconda и имеет некоторые другие зависимости, особенно в этом случае это библиотека с именем antiword.
Шаги, которые я предпринял до сих пор:
-
Установил Ma c Портирует и использует его для установки нескольких пакетов (например, poppler, antiword, unrtf, tesseract, swig). Установка оказалась успешной. Каталоги / opt / local и / opt / local / bin (где находятся указанные выше двоичные файлы) были добавлены в $ PATH без проблем.
Создана среда (myenv) в Анаконде, используя Python 3.8. Добавлены различные библиотеки, включая jupyter.
Открыт терминал с активированным myenv. Установленный textract с помощью:
% pip install textract
Казалось бы, все это работает нормально, и сообщений об ошибках не было.
Теперь, если я открою myenv с Python или i Python из приложения Anaconda-Navigator открывает окно терминала, и я могу выполнить следующие команды:
>>> import textract
>>> myText = textract.process('path-to-doc-file')
>>> print(myText)
Выход из последней команды, как и ожидалось, весь текст, содержащийся в документе Word. Это поддерживает идею о том, что все необходимые библиотеки и зависимости установлены правильно.
Если я открою среду myenv с помощью Jupyter Notebook из приложения Anaconda-Navigator, появится веб-страница, и я смогу создать новую записную книжку. Однако, если я попытаюсь выполнить точно такие же команды в ячейке ноутбука, я получу следующие ошибки:
FileNotFoundError: [Errno 2] No such file or directory: 'antiword'
The command `antiword path-to-file.doc` failed because the executable `antiword` is not installed on your system. Please make sure the appropriate dependencies are installed before using textract
Я был удивлен, потому что думал, что Python используется в Терминале и в Ноутбуки Jupyter были по сути одинаковыми. И все же, похоже, что в этой ситуации это не так.
Я пропустил важный этап настройки?