python:alpineに基づいてDockerコンテナでPythonのScrapyを実行しようとしています。以前はうまくいきましたが、今はScrapyのImage Pipelineを使ってピローをインストールする必要があります。"jpegのヘッダーまたはライブラリファイルが見つかりませんでした" Alpine Linuxのベローズをインストール
は簡略化した例として、私は次のようDockerfile
を試してみました:
FROM python:alpine
RUN apk --update add libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-dev curl
RUN apk add libjpeg zlib tiff freetype lcms libwebp tcl openjpeg
RUN pip install Pillow
しかし、私はこれを構築しようとすると、私は次のものが含まれ、エラーを取得:
Traceback (most recent call last):
File "/tmp/pip-build-ft5yzzuv/Pillow/setup.py", line 744, in <module>
zip_safe=not debug_build(),)
File "/usr/local/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/usr/local/lib/python3.6/distutils/command/install.py", line 545, in run
self.run_command('build')
File "/usr/local/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.6/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/local/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.6/distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/tmp/pip-build-ft5yzzuv/Pillow/setup.py", line 545, in build_extensions
raise RequiredDependencyException(f)
__main__.RequiredDependencyException: jpeg
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-ft5yzzuv/Pillow/setup.py", line 756, in <module>
raise RequiredDependencyException(msg)
__main__.RequiredDependencyException:
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
私が通過しましたhttps://pillow.readthedocs.io/en/latest/installation.htmlの要件とアルプスの対応するパッケージを見つけようとしましたが、私が見つけられなかったのはlibimagequantだったので、これは「犯人」かもしれません。それにもかかわらず、トレースバックとエラーメッセージにはopenjpeg
がインストールされていたのに対し、jpeg
は見つからないと思われるようです。
Dockerfile
を変更してpip install Pillow
を実行するにはどうすればよいですか?
Yeap、私はちょうどそのコメントを実行中の' Dockerfile'に翻訳していました。あなたは私よりも速かった:) – fernandezcuesta
慎重にエラーを読んだ後、私は「ヘッダまたはライブラリファイルがjpegで見つかりませんでした」と気付いた。これらのヘッダーは* -devパッケージで保持されます。そこで私はhttps://pkgs.alpinelinux.org/packages?name=libjpeg*&branch=edgeに行き、最後に "apk --no-cache --update-cache add libjpeg-turbo-dev zlib-dev"を実行しました。トリック。 –
'apk add jpeg-dev'は、「ヘッダやライブラリファイルがjpegで見つかりませんでした」という問題を修正するために必要なものです –