Приложение Python с tesseract не работает в Bluemix
У меня есть приложение Python, которое использует tesseract для обнаружения флажков в отсканированных изображениях, прекрасно работает на моем локальном компьютере, но когда я отправляю свой код в Bluemix вместе с пакетом сборки python-tesseract, он не генерирует выходной файл, что означает, что tesseract не является быть обнаруженным на Bluemix.
Это мой manifest.yml:
Приложения:
- дорожка:.
память: 512M
экземпляры: 1
домен: mybluemix.net
имя: детектор шума-края-bluemix
ведущий: пограничный шумовой детектор-bluemix
Disk_quota: 1024M
buildpack: https://github.com/LeoKotschenreuther/python-tesseract-buildpack.git
Это мои требования.txt:
колба
NumPy
Подушка == 4.1.1
pycparser
pyOpenSSL
Pyparsing
pytesseract
питон-dateutil
питон-swiftclient
pytz
PyWavelets
scikit-изображение
SciPy
Запросы
Matplotlib==1.4.3
OpenCV-питон
cf_deployment_tracker
тессеракт
Вот логи от Bluemix:
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "server.py", line 217, in predict_square_checkboxes
ImgOcr = image_hocr_class.ocr_hocr('temporary.png')
File "/home/vcap/app/src/image_hocr_class.py", line 39, in __init__
self.HTMLTree = xml.etree.ElementTree.parse(self.HOCRFileName).getroot()
File "/app/.heroku/python/lib/python3.6/xml/etree/ElementTree.py", line 1196, in parse
tree.parse(source, parser)
File "/app/.heroku/python/lib/python3.6/xml/etree/ElementTree.py", line 586, in parse
source = open(source, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'images/8e297b93a39f1e08a490f72c8db53bf0.hocr'
Обычно это происходит, когда pytesseract не может найти путь tesseract. Не уверен, как получить эту работу на Bluemix. У кого-нибудь есть python с tesseract, работающим на Bluemix? Пожалуйста помоги.
1 ответ
IBM Cloud предоставляет вам множество возможностей для запуска ваших приложений. Cloud Foundry Runtime является одним из них, но в вашей ситуации это не совсем подходит. Всякий раз, когда у вас есть зависимость, которую вам нужно установить, вам нужно создать свой собственный пакет сборки, который может быть довольно сложной задачей. ( https://docs.cloudfoundry.org/buildpacks/custom.html) Когда-нибудь слышали о Docker/Kubernetes? Если у вас есть ряд зависимостей от приложений (например, в вашем случае - tesseract), я бы предложил вам создать среду Kubernetes для сборки вашего приложения! взгляните на эти ресурсы: https://hub.docker.com/r/tesseractshadow/tesseract4re/ https://console.bluemix.net/docs/containers/container_index.html