我正在尝试在Google应用引擎上部署一个同样具有OCR功能的应用程序。我用自制软件下载了tesseract,并用pytesseract
包装在Python中。OCR功能在我的本地系统上工作,但是当我把应用程序上传到googleappengine时就不行了。在
我从usr/local/celal/tesseract复制了tesseract
文件夹,并粘贴到我的应用程序的工作目录中。我上传了tesseract文件和pytesseract
文件到appengine。我用os.getcwd()
指定了tesseract的路径,这样pytesseract
就能找到它。然而,这并不奏效。App engine找不到要执行的文件,因为它们不在同一目录中(os.getcwd()
)。在
代码来自pytesseract.py
cmda = os.getcwd()
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
def find_all(name, path):
result = []
for root, dirs, files in os.walk(path):
if name in files:
result.append(os.path.join(root, name))
return result
founds = find_all("tesseract",cmda)
tesseract_cmd = founds[0]
Google App Engine的错误是:
tesseract is not installed on your path.
googleappengine标准环境不适合您的用例。确实,^{} 和{a2}库可以通过} and ^{} 平台包,它们不在appengine标准Python3.7运行时的基本运行时中提供。这就产生了错误。在
pip
安装。但是要安装这些库require the ^{解决方案是使用Cloud Run,它将在Docker容器中运行您的应用程序,并且您可以自定义运行时。我修改了这个Quickstart guide在云上运行运行一个示例应用程序,该应用程序使用
pytesseract
将图像转换为文本。在我的文件夹结构:
这是
^{pr2}$Dockerfile
:app.py
的内容:requirements.txt
:现在要容器化和部署应用程序,只需运行:
gcloud builds submit tag gcr.io/<PROJECT_ID>/helloworld
生成容器并将其提交给Container Registry。gcloud beta run deploy image gcr.io/<PROJECT_ID>/helloworld platform managed
将容器部署到云运行。相关问题 更多 >
编程相关推荐