[解決済み] DockerでPillowを使用する
質問
PythonのPILモジュールがなぜかDockerにインストールできません。以下は、私の持っているものについての説明です。
要件.txt
Pillow
flask
redis
ドッカーファイル
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD python app.py
app.py
import PIL
コマンド
$ sudo docker build -t web .
Installing collected packages: Pillow, Werkzeug, MarkupSafe, Jinja2, itsdangerous, flask, redis
Successfully installed Jinja2-2.8 MarkupSafe-0.23 Pillow-2.9.0 Werkzeug-0.10.4 flask-0.10.1 itsdangerous-0.24 redis-2.10.3
---> 91dfb38bd480
Removing intermediate container 4e4ca5801814
Step 4 : CMD python app.py
---> Running in e71453f2fab6
---> d62996658bd6
Removing intermediate container e71453f2fab6
Successfully built d62996658bd6
$ sudo docker-compose up
こんな感じです。 出力
web_1 | File "app.py", line 1, in <module>
web_1 | import PIL
web_1 | ImportError: No module named PIL
を追加したらどうかと思いました。 PIL をビルドすると、次のようなことが起こります。
$ sudo docker build -t web .
....
Collecting PIL (from -r requirements.txt (line 1))
Could not find a version that satisfies the requirement PIL (from -r requirements.txt (line 1)) (from versions: )
Some externally hosted files were ignored as access to them may be unreliable (use --allow-external PIL to allow).
No matching distribution found for PIL (from -r requirements.txt (line 1))
ここから先はどうすればいいのでしょうか?
どのように解決するのですか?
PILなら
Python イメージングライブラリ (PIL)
(ときどき
が必要です。
import Image
の代わりに
import PIL
)
"による。 Python imaging library (PIL)のインストール方法を教えてください。 他のコンポーネントもインストールする必要があります。
sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev
pip install PIL
参照
a5huynh/scrapyd-playground/Dockerfile
は、Pillow (Python Imaging Library) の依存性を利用した例です。
(しかし、注意点として
ユーゴ
以下のコメント
これは2つのモジュールが混在しているということです。PILとPillowの2つのモジュールが混在していること。
Pillowはメンテナンスされたフォークであり、オリジナルのメンテナンスされていないPILのドロップイン置き換えですので、両方を同時にインストールするべきではありません)
RUN apt-get update && apt-get install -y \
python-dev python-pip python-setuptools \
libffi-dev libxml2-dev libxslt1-dev \
libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev \
liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk
# Add the dependencies to the container and install the python dependencies
ADD requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt && rm /tmp/requirements.txt
RUN pip install Pillow
を要件とする。
Pillow==2.6.1
Scrapy==0.24.4
Twisted==14.0.2
boto==2.36.0
cffi==0.8.6
characteristic==14.2.0
cryptography==0.6.1
cssselect==0.9.1
lxml==3.4.0
pyOpenSSL==0.14
pyasn1==0.1.7
pyasn1-modules==0.0.5
pycparser==2.10
pymongo==2.8
queuelib==1.2.2
scrapy-mongodb==0.8.0
scrapyd==1.0.1
service-identity==14.0.0
six==1.8.0
w3lib==1.10.0
zope.interface==4.1.1
2019年(4年後)には ダニエル・W という文句を言う。
デコーダ/画像処理装置がまだ不足しているため、次のようなエラーが発生します。
OSError: decoder tiff_lzw not available
しかし、彼はこう付け加える。
私の問題の発端は バギーピローバージョン(5.0) が見つからないと文句を言う。
tiff
のようなものがありますが、実際には欠落していませんでした。
関連
-
[解決済み] System.InvalidOperationException: Failed to deploy distro docker-desktop to C:\UserslenovaAppDataLocal╱distro: exit code: -1
-
[解決済み] ansibleでdocker-composeのコマンドを実行するには?
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】apt-get でインストールしても docker コマンドが見つからない。
-
[解決済み] docker: ドライバがエンドポイントウェブサーバの外部接続のプログラミングに失敗しました。
-
[解決済み] Podをスケジュールするためのノードがない - VMを使用せずにローカルでKubernetesを実行する
-
[解決済み] ドッカーコンテナの終了ステータス255は何を意味するのですか?
-
docker 環境に opencv をインストールします ImportError: libGL.so.1: cannot open shared object file: そのようなファイルやディレクトリはありません
-
docker共通コマンドのまとめ
-
DockerのインストールとRocketMQの利用について
-
クラウドネイティブ時代に求められるコアスキル Docker Advanced (Dockerネットワーク詳解)
-
docker-composeによるmysqlのデプロイメントの実践