2016-03-25 14 views
1

何が問題になったのかよくわかりません。ローカルマシンで実行すると、Django ImportError:Openshiftで実行中のモジュールがありません

python manage.py runserver 

すべてがOKです。しかし、Openshiftで走っているとき、私は500 Internal Server Errorを得ました。

rhc tail -a maid 

私は既に

from __future__ import unicode_literals 
from django.apps import AppConfig 
class MblogConfig(AppConfig): 
    name = 'mblog' 
    def ready(self): 
     from .defaults import * 

WSGI /アプリケーションが持っているようの.pyが

default_app_config = 'mblog.apps.MblogConfig' 

とapps.pyとして定義mblog/INITを有する

==> app-root/logs/python.log <== 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129] File "/var/lib/openshift/56f1365889f5cf9b07000054/python/virtenv/lib/python2.7/site-packages/Django-1.9.2-py2.7.egg/django/__init__.py", line 18, in setup 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129]  apps.populate(settings.INSTALLED_APPS) 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129] File "/var/lib/openshift/56f1365889f5cf9b07000054/python/virtenv/lib/python2.7/site-packages/Django-1.9.2-py2.7.egg/django/apps/registry.py", line 85, in populate 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129]  app_config = AppConfig.create(entry) 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129] File "/var/lib/openshift/56f1365889f5cf9b07000054/python/virtenv/lib/python2.7/site-packages/Django-1.9.2-py2.7.egg/django/apps/config.py", line 116, in create 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129]  mod = import_module(mod_path) 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129] File "/opt/rh/python27/root/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129]  __import__(name) 
[Fri Mar 25 17:40:12 2016] [error] [client 127.3.227.129] ImportError: No module named mblog.apps 
82.28.196.48 - - [25/Mar/2016:13:40:11 -0400] "GET/HTTP/1.1" 500 617 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4" 

を示します設定以下:

sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 'MaidProject', 'mblog')) 
os.environ['DJANGO_SETTINGS_MODULE'] = 'MaidProject.lineblog.settings' 

ファイル構造は次のとおりです。私は私の以前のDjangoの1.6プッシュするが、今の新しいアプリケーションのものではDjango 1.9で作業するとき

MaidProject 
- __init__.py 
- lineblog 
    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 
- manage.py 
- mblog 
    - __init__.py 
    - admin.py 
    - apps.py 
    - default.py 
    - ... 
    - locale (dir) 
    - templates (dir) 

私はこの問題を得ることはありません。いくつかのことを試して、どこにもいけません。任意のポインタは非常に感謝しています。 Openshiftにエラーがありますが、ローカルマシンで実行しても問題はありません。私はどこかで何か間違ったことをしたにちがいないが、今は数日を費やしていて、今はどこにもいない。本当に欲求不満。 ありがとうございます。

+1

を。 –

答えて

0

PYTHONPATHを指摘してくれてありがとうGrahamに感謝します。これで問題は解決しました。それは私が設定されたパスが間違っていたことが判明し、次へ

sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 'MaidProject', 'mblog')) 

から変更することはトリック行っている:「MaidProject」を含めると、それが動作するかどうかを確認するためにPYTHONPATH環境変数を設定してみてください

sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi')) 
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'MaidProject')) 
関連する問題