質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

docker+python+djangoの環境構成でpip installされるが、no moduleエラーとなってしまう

minalo
minalo

総合スコア6

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

1072閲覧

投稿2021/08/23 17:51

編集2021/08/25 13:31

現在、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

FROM python:3.9 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ CMD /bin/bash

dockercompose

version: '3' services: python: build: ./python command: uwsgi --socket :8001 --module app.wsgi --py-autoreload 1 --logto /tmp/mylog.log volumes: - ./src:/code - ./static:/static expose: - "8001" depends_on: - db

requirment

Django==3.2 uwsgi==2.0.17 mysqlclient PyYAML==5.4.1 requests

ビルドした際のメッセージがこちらになります。

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初心者で色々と調べているのですが、答えが見つかっていないのが現状です。
初歩的なご質問でしたら申し訳ございません。
何卒、よろしくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

llr114

2021/08/23 18:00

ひとまず pip show PyYAML を実行した結果。 あとは、適当な.pyファイルを作っていただいたも、コマンドで直接やっていただいたも構わないのですが、 import sys, pprint pprint.pprint(sys.path) の出力結果を教えていただきたいです。 申し訳ないですが、私自身、dockerに関しては初心者なのでその点ご了承ください。。。
minalo

2021/08/23 18:21 編集

お返事が遅れてしまい申し訳ございません。。。 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' ``` こちらになります。 よろしくお願い致します!
hentaiman

2021/08/24 00:54

何をした結果「ターミナル上ではpip installが成功しているが、src配下のsetteings.pyにてimport yamlを記述してもmoduleが見つからないエラーが発生しています。」なのかを追記してください 見て分かる通りコメント欄では見辛いので、追記の際はコメントへの返事と併せて質問を修正してください
minalo

2021/08/24 13:10

ご指摘ありがとうございます。 docker-composeでコンテナをbuildした後、startprojectコマンドでmysiteディレクトリを作成 mysiteディレクトリ配下のsettings.pyにimport yamlを記述しても、モジュールが見つからないエラーが発生しています。 docker-compose exec python bashコマンドでコンテナの中に入り、pip listコマンドを実行して、ターミナル上にはPyYAMLが記載されていた結果、ターミナルではインストール済みなのにsettings.pyにimport yamlを記述してもmoduleが見つからない、というエラーに陥っています。
minalo

2021/08/24 15:20

manage.pyに以下のコードを記載して出力した結果 ``` import sys print(sys.executable) ``` /usr/local/bin/pythonと表示されていました。 no module namedとなっていたのは、VS Code上で参照しているpythonのPathとdockerコンテナ内でインストールしていたパスに差異が生じていた為でした。 的外れな質問&前提の情報が不足した質問をしてしまい、申し訳ございませんでした。 以後、解決ができたら解決方法に記載致します。 ご協力いただき、本当にありがとうございました!
llr114

2021/08/24 17:47

manage.pyに print(sys.version) を追加してみていただいてもいいですか? また、応急処理みたいなものですが、 sys.path.append(/usr/local/lib/python3.9/site-packages) をmanage.pyのimport PyYAMLの前に追加してみて、エラーが出るか確認してみてください。
minalo

2021/08/25 13:29

manage.pyにprint(sys.version)を追記した結果 3.9.6 と出力されていました。 import部分の前にsys,path.appendを追記した結果なのですが、 no module nameのエラーが発生しております。
bsdfan

2021/08/25 14:18

docker-compose up でエラーがでるのでしょうか? vscodeがモジュールを見つけられていないだけということはないですか?
minalo

2021/08/28 10:21

返信が遅れてしまい、申し訳ございません。 docker-compose upではエラーが発生しておりません。 ご指摘の通り、vs codeがモジュールを見つけられないことがエラーの要因でした。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。