実現したいこと
Docker環境内でTensorFlowを使う。
前提
TensorFlow Dockerを参照して、Dockerコンテナを作成しました。
numpy等の追加パッケージをpyproject.tomlに記載した状態でpoetryでインストールしました。
インストールは成功して、コンテナ内でnumpyの情報を確認できる状態です。
〇追記6/16
poetryでのパッケージインストール時のコマンドです。
docker-compose run --entrypoint "poetry install --no-root" demo-app
〇追記6/16
pyproject.tomlの中身を下記に示します。
[tool.poetry]
name = "demo-app"
version = "0.1.0"
description = ""
authors = ["Your Name you@example.com"]
readme = "README.md"
packages = [{include = "demo_app"}]
[tool.poetry.dependencies]
python = ">=3.9,<3.11"
fastapi = "^0.97.0"
uvicorn = {extras = ["standard"], version = "^0.22.0"}
python-multipart = "^0.0.6"
numpy = "^1.24.3"
matplotlib = "^3.7.1"
tensorflow-datasets = "^4.9.2"
tensorflow = "^2.12.0"
tensorflow-io-gcs-filesystem = "^0.23.1"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
発生している問題・エラーメッセージ
コンテナ内のスクリプトでnumpyをimportするときに見つかりません。
試したこと
コンテナ内でpoetry show -vを実行してnumpyのインストール場所を確認しました。
(コンテナ内にはdocker-compose exec demo-app bashで入っています。)
/src/.venvと表示されたので、
ENV PTTHONPATH "${PYTHONPATH}:/src/.venv"をDockerfileに追記して再ビルドしてみましたが、結果変わりませんでした。
助言を頂けると幸いです。
〇追記6/15
スクリプトに下記を追加して、一時的にパスを通しました。
sys.path.append("/src/.venv")
print(sys.path)
しかし、実行したpythonが見ているパスは適切なはずなのに、numpyがありません。
['/src/test', '/src/test', '/src', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages', '/src/.venv']
Traceback (most recent call last):
File "/src/test/test.py", line 11, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
回答1件
あなたの回答
tips
プレビュー