在 heroku 上安装 pdftotext 库



pdftotext library是requirements.txt中的一个要求。尝试推送到 heroku 时,出现以下错误:

remote:          Running setup.py install for pdftotext: started
remote:            Running setup.py install for pdftotext: finished with status 'error'
remote:            Complete output from command /app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-rnbekz45/pdftotext/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-o0if2tl3-record/install-record.txt --single-version-externally-managed --compile:
remote:            /app/.heroku/python/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
remote:              warnings.warn(msg)
remote:            running install
remote:            running build
remote:            running build_ext
remote:            building 'pdftotext' extension
remote:            creating build
remote:            creating build/temp.linux-x86_64-3.6
remote:            gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPOPPLER_CPP_AT_LEAST_0_30_0=0 -I/app/.heroku/python/include/python3.6m -c pdftotext.cpp -o build/temp.linux-x86_64-3.6/pdftotext.o -Wall
remote:            pdftotext.cpp:3:10: fatal error: poppler/cpp/poppler-document.h: No such file or directory
remote:             #include <poppler/cpp/poppler-document.h>
remote:                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
remote:            compilation terminated.
remote:            error: command 'gcc' failed with exit status 1
remote:            
remote:            ----------------------------------------
remote:        Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-rnbekz45/pdftotext/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-o0if2tl3-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-rnbekz45/pdftotext/
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed

通常我会通过安装 libpoppler-cpp-dev 来解决这个问题 apt.但是在 heroku 上,我没有 root 访问权限来执行此操作。有解决方案吗?

我意识到严格来说,这不是一个编程问题。但是我需要这个来部署我的程序,所以我希望这里的纯粹主义者原谅我。

来自 如何安装应用程序所需的其他软件包?

我们不为安装额外的软件包提供官方支持,但有几个不受支持的选项。

一个是实验性的heroku-apt-buildpack。您可以通过在应用程序的Aptfile中包含任何 APT 包来使用它。然后,当您部署应用程序时,构建包将在测功机上安装这些软件包。

因此,为此,请首先添加构建包:

heroku buildpacks:add --index 1 heroku-community/apt

然后,在源目录中创建一个包含以下内容的Aptfile

libpoppler-cpp-dev

并像往常一样部署。让我知道这是否有帮助!

相关内容

  • 没有找到相关文章

最新更新