Python-camelot (ошибка: GhostscriptNotFound, пока он установлен)
Я пытаюсь извлечь табличные данные из PDF с помощью Camelot, и я получаю следующую ошибку.
Код:
tables = camelot.read_pdf(file_name)
Ошибка:
GhostscriptNotFound: Убедитесь, что Ghostscript установлен и доступен для переменной среды PATH
Я уже установил Ghostscript, и он доступен в переменной окружения PATH.
Пожалуйста, найдите ниже детали версии:
- Окна-10-10.0.17134-SP0
- Python 3.6.5 | Anaconda, Inc. | (по умолчанию, 29 марта 2018 г., 13:32:41) [MSC v.1900 64 бит (AMD64)]
- NumPy 1.14.3
- openCV 3.4.3
- Камелот 0.3.2
Пожалуйста, помогите решить эту проблему.
18 ответов
Добавление путей PAT и "bin" и "lib" для Ghostscript сработало для меня:
C:\Program Files\gs\gs9.26\bin
C:\Program Files\gs\gs9.26\lib
Я удалил 64-битную и
- Установите 32-битную версию
Добавить путь
C: \ Program Files(x86) \ gs \ gs9.26 \ bin
C: \ Program Files(x86) \ gs \ gs9.26 \ lib
и теперь это работает
Для меня использую brew link -f --overwrite ghostscript
решил вопрос. Я бы рекомендовал проверить предлагаемые решения на https://github.com/atlanhq/camelot/issues/282. Вот где я тоже нашел свое исправление.
Загрузите Ghostscript здесь https://www.ghostscript.com/download/gsdnld.html и добавьте его в путь, если это необходимо
Пробовал все решения. Единственный подходящий вариант - использовать 32-битный скрипт ghostscript.
Для меня удаление камелота и повторная установка с помощью
conda install -c conda-forge camelot-py
вместо pip решил проблему (т.к. ghostscript тоже переустанавливается)
У меня такая же проблема. Я решил это, удалив 64-битную версию и установив 32-битную версию.
Я решил эту проблему.
- Я скачал GhostScript .
- Затем установил его на
C:/programfiles
. - Добавлен заданный путь:
C:\Program Files\gs\gs9.26\bin
+C:\Program Files\gs\gs9.26\lib
- Перезагрузил мой компьютер.
После этих действий все заработало.
Это сработало для меня:
C: \ Program Files \ gs \ gs9.55.0 \ bin
Просто найдите местоположение пути, скопируйте его и вставьте в пользовательские и системные переменные Path (переменные среды).
Если вам надоели все ошибки, связанные с использованием Ghostscript, и вы хотите найти способ использовать Camelot без использования Ghostscript, вот его форк, который на него не полагается.Форк Camelot без Ghostscript
Руководство по установке похожее, но на этот раз из самого репозитория github.
Сначала установите эти зависимости:
!pip install pdf2image
!pip install python-dateutil
!apt-get install poppler-utils
Затем клонируйте репо
$ git clone https://www.github.com/h2oai/camelot
Наконец, перейдите в каталог репо и установите оттуда camelot.
$ cd camelot
$ pip install ".[base]"
Импортируйте камелот и с удовольствием пользуйтесь :)
Я столкнулся с той же ошибкой при запускеcamelot.read_pdf()
иctypes.util.find_library("gs")
не дал результатов (что означает, что библиотека gs не может быть найдена Python). Я использую MacOS. Я попробовал следующие решения, которые не помогли:
- Добавление каталога libgs.dylib в переменную среды PATH.
- Установка Ghostscript с помощью Brew или Pip
- доморощенная ссылка --перезаписать Ghostscript
Я не пытался установить его с помощью Conda, так как я все равно не использую Conda.
Наконец, я мог бы решить проблему, выполнив следующие шаги:
- Сначала загрузите сценарий-призрак с https://www.ghostscript.com/releases/.
- Разархивируйте файл
- перейдите в разархивированный каталог и выполните следующие команды:
./configure
make
make install (might need root privileges)
Затем файл libgs.dylib должен находиться в каталоге /opt/homebrew/lib/libgs.dylib.
Вам необходимо связать этот файл с /usr/local/lib с помощью следующей команды (если каталог /usr/local/lib не существует, вам необходимо его создать)
ln -s /opt/homebrew/lib/libgs.dylib /usr/local/lib/libgs.dylib
Вот мое решение (ОС Windows (11, 64 BIT)):
- Скачайте и установите желаемую версию призрака (32,64 - не имеет значения)
- Используя команду "dir /x", получите сокращенную версию пути к вашей установке (c: \ program ~1 \ blahbla...). Мое местоположение (мне нравится изменять вариант по умолчанию): «C: \ Program Files \ gs \ GPLGhostScript», а краткое имя - «c: \ program ~1 \ gs \ GPLGhostScript».
- Добавьте это в путь вместе с \ bin. В моем случае "c: \ program ~1 \ gs \ GPLGhostScript \ bin" (нет необходимости указывать путь к библиотеке, как предлагали другие)
- Перезагрузите компьютер
- Протестируйте свою установку GhostScript по этой ссылке .
Удачи :)
Для тех, кто может застрять в Ghostscript, согласно официальной документации , Ghostscript будет заменен на poppler в качестве бэкэнда преобразования изображений по умолчанию в версии 0.12.0.
На данный момент вы можете избежать всей проблемы с Ghostscript, изменив серверную часть преобразования изображений в программе чтения:
import camelot
camelot.read_pdf("example.pdf",backend="poppler")
Я понял, что. Если вы используете 64-битный Python, вам необходимо установить 64-битный ghostcript, иначе 32-битный.
Также установите путь для 64-битной версии: C: \ Program Files \ gs \ gs9.26 \ binC: \ Program Files \ gs \ gs9.26 \ lib
или ниже для 32-битного C: \ Program Files(x86) \ gs \ gs9.26 \ binC: \ Program Files(x86) \ gs \ gs9.26 \ lib
Я столкнулся с той же проблемой в течение 2 дней. Я нашел решение по ссылке ниже.
для Windows 10 я использовал метод ниже
- в «поиске в Интернете и окнах» напишите «под изменением переменной среды для вашей учетной записи в панели управления».
- отредактируйте путь для библиотеки lib и bin Ghostscript здесь. добавлять ; также отделить путь в конце. установить путь в переменной окружения
Для получения дополнительной информации используйте ссылку ниже. Это сработало для меня.
https://github.com/atlanhq/camelot/issues/465#issuecomment-975976344
Очень простой способ - установить Ghostscript с официального сайта: https://www.ghostscript.com/download/gsdnld.html
Затем укажите местоположение при настройке библиотеки в папке сценария Anaconda. Подождите 10 минут после закрытия платформ Python.
Я получал эту ошибку (OSError: Ghostscript не установлен. Вы можете установить его, следуя инструкциям здесь: https://camelot-py.readthedocs.io/en/master/user/install-deps.html) Я перепробовал все упомянутое здесь, а также в Github. но после установки Ghostscript отсюда и последующего добавления в PATH. Я продолжаю пробовать методы, чтобы решить эту проблему. НО решение состоит в том, чтобы просто перезагрузить компьютер, и все работает. так что перезагрузка обязательна.
Вот как я решил эту ошибку на компьютере с Windows, аналогично тому, что опубликовал Александр Гарзо:
- Перешел в проводник -> диск C -> Program Files -> gs -> gs9.55.0 -> щелкнул Shift по папке bin -> скопировал как путь ("C:\Program Files\gs\gs9.55.0\bin")
- Затем перешел к переменным среды -> Путь -> Изменить -> Создать -> вставил выше -> ОК -> перезагрузил компьютер.
Затем я запустил следующий код на Python:
import ctypes
from ctypes.util import find_library
find_library("".join(("gsdll", str(ctypes.sizeof(ctypes.c_voidp) * 8), ".dll")))
Вывод был «C:\Program Files\gs\gs9.55.0\bin\gsdll64.dll», что означает, что решение сработало. После этого я смог без проблем установить и использовать Camelot.