2017-01-24 1 views
1

ドッカーには新しく、簡単なアプリケーションをドッカーに移動しようとしています。 Python標準モジュール「pip install」を使用してインポートできます。しかし、私は使用したいカスタムPythonユーティリティファイルをいくつか持っています。 これらのファイルは別々のパッケージ "utils"にあります。ドッカーPythonカスタムモジュールが見つかりません

私のメインのpythonファイルで:test.py、私は

from utils import math.py, logger.py 

をやっているドッキングウィンドウのこの外では正常に動作しますが、ドッキングウィンドウを通じて実行すると、私はエラー"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

お勧めはありますか?

答えて

2

PYTHONPATHから/test_project/utilsに設定します。モジュールutilsを解決しようとすると、それは1の探している:

  • ファイル__init__.pyが含まれてい/test_project/utils/utils.py
  • ディレクトリ/test_project/utils/utils/

これはあなたのようですか?

utils/math.py 
utils/logger.py 

あなたが本当にやりを意味することは、私は `輸入数学の輸入logger`を行うならば、私の地元の環境はモジュールを解決することはできません

# different path... 
ENV PYTHONPATH /test_project 

from utils import math 
from utils import logger 
+0

あるのだろうか。それは 'utils import math、logger'から必要です。だから、ローカルとドッカーの両方のコンテナで作業するには、 'utils import main、logger'を使う必要があります。 'PYTHONPATH/test_project'を使って__init.pyを含む'/test_project/utils/'ディレクトリを探すようにしてください。 ? – Dadu

+0

@Prashant私はそれがあなたがやりたいと思うものだと信じています。 –

+0

現在、 'utils/__ init __。py'がない場合は作成してください。内容を持たなくても、空のファイルだけが動作します。 –