私は Docker を初めて使用しており、1 つの簡単なアプリケーションを Docker に移行しようとしています。Python 標準モジュールは、「pip install」を使用してインポートできます。ただし、使用したいカスタム Python ユーティリティ ファイルがいくつかあります。これらのファイルは、別のパッケージ「utils」にあります。
私のメインのPythonファイルではtest.py
、私は
from utils import math.py, logger.py
これは docker の外部では正常に動作しますが、docker 経由で実行するとエラーが発生します"ImportError: No module named utils"
。
私の Dockerfile コード:
FROM python:2.7.11
ADD ./ test_project/
WORKDIR test_project
ENV PATH=$PATH:/test_project/utils
ENV PYTHONPATH /test_project/utils
CMD [ "python", "report/test.py"]
私のディレクトリ構造:
test_project
report
utils
助言がありますか?
ベストアンサー1
PYTHONPATH
に設定しました/test_project/utils
。モジュール を解決しようとするとutils
、次のいずれかが検索されます。
- ファイル
/test_project/utils/utils.py
/test_project/utils/utils/
を含むディレクトリ__init__.py
。
これを持っているようですね?
utils/math.py
utils/logger.py
あなたが本当にやりたいことは
# different path...
ENV PYTHONPATH /test_project
from utils import math
from utils import logger