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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Django

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python

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

Q&A

解決済

1回答

8232閲覧

【Djangoデプロイ】wsgi.pyのimport error

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python

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

0グッド

0クリップ

投稿2017/09/29 10:46

編集2017/10/01 05:50

###前提・実現したいこと
現在制作したDjangoアプリの初めてのデプロイ作業中です。
環境は下記の通りです。

さくらVPS
centos7
Apache/2.4.6
mod_wsgi
MySQL5.7.19
PyMySQL0.7.9
Django 1.11
python 3.6.2

関連ファイルは下記の通りです。

♯/etc/httpd/conf.d/python.conf LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias / /var/www/cgi-bin/mysite/mysite/wsgi.py <Directory /var/www/cgi-bin/mysite/mysite> Order deny,allow Allow from all </Directory>
#/cgi-bin/mysite/mysite/wsgi.py import os import site import sys import pymysql pymysql.install_as_MySQLdb() site.addsitedir("/usr/lib/python3.6/site-packages") sys.path.append('/var/www/cgi-bin/lib/python3.6/site-packages') sys.path.append('/var/www/cgi-bin/mysite') sys.path.append('/var/www/cgi-bin/mysite/mysite') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") activate_env = os.path.expanduser("/var/www/cgi-bin/bin/activate_this.py") execfile(activate_env, dict(__file__=activate_env)) from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

###発生している問題・エラーメッセージ
ローカル環境ではsqlite3を使っていたのですが、本番環境ではMySQLに変更しました。
python manage.py migrateでDBに反映させるところまではできたのですが、ブラウザを確認してみるとInternal Server Errorが。。
logを確認したところ、下記のメッセージが出ておりました。

#error_log [Fri Sep 29 19:04:10.964582 2017] [:error] [pid 982] [client 175.41.103.183:49888] mod_wsgi (pid=982): Target WSGI script '/var/www/cgi-bin/mysite/mysite/wsgi.py' cannot be loaded as Python module. [Fri Sep 29 19:04:10.964625 2017] [:error] [pid 982] [client 175.41.103.183:49888] mod_wsgi (pid=982): Exception occurred processing WSGI script '/var/www/cgi-bin/mysite/mysite/wsgi.py'. [Fri Sep 29 19:04:10.964642 2017] [:error] [pid 982] [client 175.41.103.183:49888] Traceback (most recent call last): [Fri Sep 29 19:04:10.964661 2017] [:error] [pid 982] [client 175.41.103.183:49888] File "/var/www/cgi-bin/mysite/mysite/wsgi.py", line 12, in <module> [Fri Sep 29 19:04:10.964711 2017] [:error] [pid 982] [client 175.41.103.183:49888] import pymysql [Fri Sep 29 19:04:10.964739 2017] [:error] [pid 982] [client 175.41.103.183:49888] ImportError: No module named pymysql [Fri Sep 29 19:15:42.140527 2017] [:error] [pid 979] [client 175.41.103.183:49993] mod_wsgi (pid=979): Target WSGI script '/var/www/cgi-bin/mysite/mysite/wsgi.py' cannot be loaded as Python module. [Fri Sep 29 19:15:42.140571 2017] [:error] [pid 979] [client 175.41.103.183:49993] mod_wsgi (pid=979): Exception occurred processing WSGI script '/var/www/cgi-bin/mysite/mysite/wsgi.py'. [Fri Sep 29 19:15:42.140598 2017] [:error] [pid 979] [client 175.41.103.183:49993] Traceback (most recent call last): [Fri Sep 29 19:15:42.140619 2017] [:error] [pid 979] [client 175.41.103.183:49993] File "/var/www/cgi-bin/mysite/mysite/wsgi.py", line 12, in <module> [Fri Sep 29 19:15:42.140671 2017] [:error] [pid 979] [client 175.41.103.183:49993] import pymysql [Fri Sep 29 19:15:42.140687 2017] [:error] [pid 979] [client 175.41.103.183:49993] ImportError: No module named pymysql

このエラーは非常に晴天の霹靂でした。というのも、
一つ上の階層にあるmanage.py(/cgi-bin/mysite/manage.py)においても同じようにpymysqlをインポートするのですが、そちらは正常に動いていたからです。(なのでmigrateも上手くいったのだと思います。)
またshellからimport pymysqlを試してみても正常にインポートできるので、インストールが上手くいっていないということは無いと思います。

色々と調べてはいるのですが答えが出そうもないのでこちらにて投稿させて頂きました。
何卒ご教示のほど宜しくお願い致します。

##追記

#manage.py #!/usr/bin/env python import os import sys import pymysql pymysql.install_as_MySQLdb() if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") try: from django.core.management import execute_from_command_line except ImportError: # The above import may fail for some other reason. Ensure that the # issue is really that Django is missing to avoid masking other # exceptions on Python 2. try: import django except ImportError: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) raise execute_from_command_line(sys.argv)

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

acre_maker

2017/09/30 02:50

確認になりますがsettings.pyの中でデータベースの指定をmySQLに変えていますか?
miyahan

2017/09/30 14:33

差し支えなければ、manage.py も載せてもらえますか?
退会済みユーザー

退会済みユーザー

2017/10/01 05:52

acre_maker様:データベースの指定はもう変えておりますので、そこが原因ではないようです。。
退会済みユーザー

退会済みユーザー

2017/10/01 05:53

miyahan様:manage.py追記しました。ほとんどデフォルトのままです。【import pymysql】が追加されております。
guest

回答1

0

ベストアンサー

virtualenv を使っているならば、Apacheの設定にそのパスを指定してあげてください。

cnf

1LoadModule wsgi_module modules/mod_wsgi.so 2WSGIPythonHome /path/to/.virtualenvs/v3.6.1 # ←これ 3WSGIScriptAlias / /var/www/cgi-bin/mysite/mysite/wsgi.py

参考:virtualenv + flask + apache + wsgi で動かすまで - Qiita

投稿2017/10/01 06:31

miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/02 14:26

apacheの方は何も指定してあげてなかったですね。。。 解決しました! 有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問