0

Django プロジェクトをセットアップし、それを Mopidy のpyspotifyのバージョン 2.x と統合しています。Spotify セッション インスタンスをチェックし、存在しない場合はインスタンスを作成し、Spotify URI からトラックの名前を取得するコードを作成しました。コードは次のとおりです。

def spotify_logic(request):

    if spotify.session_instance is not None:
        foo = spotify.Track('spotify:track:7fHnHy7pH4hHLQxBq1NbE8')
        foo.load()
        name = foo.name
    else:
        config = spotify.SessionConfig()
        config.application_key_filename = os.path.dirname(os.path.realpath(__file__)) + '/spotify_appkey.key'
        session = spotify.Session(config=config)

        session.login('TehNanor', '*******')
        session.process_events()

        foo = spotify.Track('spotify:track:7fHnHy7pH4hHLQxBq1NbE8')
        foo.load()
        name = foo.name

    return render(request, 'clupus/spotify.html', {'name': name})

プロジェクトをローカルで実行し./manage.py runserverてサーバーにアクセスすると、曲の名前が表示されます:「フェーズ 11 - 私たちが空に出会うまで」。Apache サーバーに変更をプルして URL にアクセスすると、次のトレースバックが表示されます。

Environment:


Request Method: GET
Request URL: http://ec2-54-196-205-226.compute-1.amazonaws.com/spotify/

Django Version: 1.6.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'raudio')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/ubuntu/public_html/clupus.com/clupus/raudio/views.py" in spotify_logic
  63.         foo.load()
File "/usr/local/lib/python2.7/dist-packages/spotify/track.py" in load
  66.         return utils.load(self, timeout=timeout)
File "/usr/local/lib/python2.7/dist-packages/spotify/utils.py" in load
  126.         raise RuntimeError('Session must be logged in to load objects')

Exception Type: RuntimeError at /spotify/
Exception Value: Session must be logged in to load objects

コードのさまざまなバリエーションを試しましたが、ローカルで機能するすべての反復が本番環境では機能しません。./manage.py runserver問題は、ローカルで使用していて、Apache サーバーで mod_wsgi アプローチを使用しているためだと想像できますが、これを修正する方法がわかりません。

4

1 に答える 1