現在、dockerでPythonの環境構築をしてプログラミングをしており、pipのPyYAMLとrequestsをインストールして開発を行おうとしています。
ターミナル上ではpip installが成功しているが、src配下のsetteings.pyにてimport yamlを記述してもmoduleが見つからないエラーが発生しています。
###pip installを確認するまでに行ったコマンド
touch dockerfile,docker-compose.yml,requirment.txt dockerfile,docker-compose.yml,requirment.txtに下記コードを記載 docker-compose up -d --build #あらかじめ作っていたsrcディレクトリに移動 cd src docker-compose exec python django-admin startproject mysite . docker-compose exec python bash pip list
srcディレクトリに移った後にstartprojectコマンドを行い、src直下にsettings.pyを作成しました、
###dockerfileなどのコード
Dockerfile
1FROM python:3.9 2ENV PYTHONUNBUFFERED 1 3RUN mkdir /code 4WORKDIR /code 5ADD requirements.txt /code/ 6RUN pip install -r requirements.txt 7ADD . /code/ 8CMD /bin/bash
dockercompose
1version: '3' 2 3services: 4 python: 5 build: ./python 6 command: uwsgi --socket :8001 --module app.wsgi --py-autoreload 1 --logto /tmp/mylog.log 7 volumes: 8 - ./src:/code 9 - ./static:/static 10 expose: 11 - "8001" 12 depends_on: 13 - db
requirment
1Django==3.2 2uwsgi==2.0.17 3mysqlclient 4PyYAML==5.4.1 5requests
ビルドした際のメッセージがこちらになります。
Building python Step 1/8 : FROM python:3.9 ---> b2278d5ae327 Step 2/8 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 1192e40607da Step 3/8 : RUN mkdir /code ---> Using cache ---> 6fe95fc8f35f Step 4/8 : WORKDIR /code ---> Using cache ---> f6a9602f9b48 Step 5/8 : ADD requirements.txt /code/ ---> Using cache ---> 8cc50cb6d613 Step 6/8 : RUN pip install -r requirements.txt ---> Using cache ---> 76dcbebe25c3 Step 7/8 : ADD . /code/ ---> 85111263d785 Step 8/8 : CMD /bin/bash ---> Running in e7382d7bd709 Removing intermediate container e7382d7bd709 ---> 1b760634e357 Successfully built 1b760634e357
問題解決にあたり調べたこと
docker-compose exec python bash pip list
上のコマンドでコンテナに接続を行い、pipがインストールされているのかを確認。
Package Version ------------------ --------- asgiref 3.4.1 certifi 2021.5.30 charset-normalizer 2.0.4 Django 3.2 idna 3.2 mysqlclient 2.0.3 pip 21.2.4 pytz 2021.1 PyYAML 5.4.1 requests 2.26.0 setuptools 57.4.0 sqlparse 0.4.1 urllib3 1.26.6 uWSGI 2.0.17 wheel 0.37.0
PyYAMLとrequestsがインストールされているのを確認。
###pip show PyYAMLを実行した結果
Name: PyYAML Version: 5.4.1 Summary: YAML parser and emitter for Python Home-page: https://pyyaml.org/ Author: Kirill Simonov Author-email: xi@resolvent.net License: MIT Location: /usr/local/lib/python3.9/site-packages Requires: Required-by:
###manage,pyにimport sys,pprintを追記して出力した結果
'/code', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages'
###manage,pyにprint(sys.version)を追記した結果
3.9.6(default, Jul 22 2021)
当方、docker初心者で色々と調べているのですが、答えが見つかっていないのが現状です。
初歩的なご質問でしたら申し訳ございません。
何卒、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー