2017-06-04 1 views
2

DjangoとGraphQLを使用して基本設定を行うには、graphene_django tutorialの作業を開始しました。グラフェンで作業するImportErrorを解決するにはチュートリアルを通してdjangoの基本設定を行いますか?

はしかし、私はそれ以上のインポートエラーが原因を進行することができません:

ImportError at /graphql 
Could not import 'cookbook.schema.schema' for Graphene setting 'SCHEMA'. ImportError: No module named schema. 
Request Method: GET 
Request URL: http://127.0.0.1:8000/graphql 
Django Version: 1.11.2 
Exception Type: ImportError 
Exception Value:  
Could not import 'cookbook.schema.schema' for Graphene setting 'SCHEMA'. ImportError: No module named schema. 
Exception Location: /home/mackie/Code/graphene_django_tutorial/env/local/lib/python2.7/site-packages/graphene_django/settings.py in import_from_string, line 78 
Python Executable: /home/mackie/Code/graphene_django_tutorial/env/bin/python 
Python Version: 2.7.12 
Python Path:  
['/home/mackie/Code/graphene_django_tutorial/cookbook', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7/plat-x86_64-linux-gnu', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7/lib-tk', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7/lib-old', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/home/mackie/Code/graphene_django_tutorial/env/local/lib/python2.7/site-packages', 
'/home/mackie/Code/graphene_django_tutorial/env/lib/python2.7/site-packages'] 
Server time: Sun, 4 Jun 2017 16:29:46 +0000 

あなたは最小限のレポでコードhereの現在の状態を見ることができます。

私の問題は、サーバーの実行方法と関係があると思います。python3 manage.py runserver。または、私がどのようにインポートしているのか。しかし、ここからもう少しデバッグを行う方法はわかりません。

すべてがチュートリアルに記載されているとおりで、何も私には特に間違っているようです。私はvirtualenvでLinuxを使っています。

これ以上の情報が必要な場合はお知らせくださいスレッドを慎重に監視しています。

EDIT:Appologies!私はpython3とpython 2.7で動作させていましたが、どちらもうまくいきませんでした。ここでは、トレースは次のとおりです。cookbook.schemaについては

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/graphql 

Django Version: 1.10.6 
Python Version: 2.7.12 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'graphene_django', 
'ingredients'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py" in inner 
    42.    response = get_response(request) 

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py" in view 
    62.    self = cls(**initkwargs) 

File "/usr/local/lib/python2.7/dist-packages/graphene_django/views.py" in __init__ 
    70.    schema = graphene_settings.SCHEMA 

File "/usr/local/lib/python2.7/dist-packages/graphene_django/settings.py" in __getattr__ 
    116.    val = perform_import(val, attr) 

File "/usr/local/lib/python2.7/dist-packages/graphene_django/settings.py" in perform_import 
    60.   return import_from_string(val, setting_name) 

File "/usr/local/lib/python2.7/dist-packages/graphene_django/settings.py" in import_from_string 
    78.   raise ImportError(msg) 

Exception Type: ImportError at /graphql 
Exception Value: Could not import 'cookbook.schema.schema' for Graphene setting 'SCHEMA'. ImportError: No module named schema. 
+0

あなたは 'python3 manage.py runserver'を実行するとは言いませんが、エラーはPython 2.7を示しています。完全なトレースバックが表示されていないため、インポートが失敗した場所が示されます。 – Alasdair

+0

申し訳ありません私は両方のケースでそれを実行した、私は元のポストに完全なトレースを追加しました。 –

答えて

2
GRAPHENE = { 
    'SCHEMA': 'cookbook.schema.schema' 
} 

インポート可能にするには、インナーcookbookディレクトリ(settings.pyが含まれている1)でschema.pyを配置する必要があります。現時点では、それは外側のcookbookディレクトリ(manage.pyを含むディレクトリ)にあります。外部ディレクトリからインポートするには、'schema.schema'が必要です。

チュートリアルでは、(それが外cookbookディレクトリにする必要があります示唆している)INSTALLED_APPS設定に'ingredients'を追加すると言うが、コードがfrom cookbook.ingredients.models import ...のような輸入品を含む場合と同様の混乱が(ingredientsはインナーcookbookディレクトリ内であることを示唆している)があります。

あなたは、内側cookbookディレクトリにschema.pyingredientsディレクトリの両方を移動してみてください、とthis repoのように、'cookbook.ingredients'INSTALLED_APPSのエントリを変更することができます。

+1

あなたはまさに正しいですが、チュートリアルにはミスタイプのパスがあり、デバッグの狂気を誘発する道を私に導きます。どうもありがとうございます! チュートリアルに問題がある方は、レポのこのセクションをご覧ください:https://github.com/graphql-python/graphene-django/tree/master/examples/cookbook –

関連する問題