2016-03-19 14 views
1

OSは、OSX El Capitanです。Pythonでdjango-scarfaceが動作しない2.7

バージョン:

  • のPython 2.7.10
  • ジャンゴ1.9.2
  • ジャンゴ - スカーフェイス3.0

私はスカーフェイスをインストールして、インストール済みのアプリケーションに追加した後、それが与えますこのエラーと私は私のアプリケーションを実行することはできません。

Unhandled exception in thread started by <function wrapper at 0x1043dbe60> 
Traceback (most recent call last): 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run 
    autoreload.raise_last_exception() 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception 
    six.reraise(*_exception) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/scarface/models.py", line 7, in <module> 
    from scarface.platform_strategy import get_strategies 
    File "/Users/mcagataybarin/molocate-dev/env/lib/python2.7/site-packages/scarface/platform_strategy.py", line 38 
    class PlatformStrategy(metaclass=ABCMeta): 
            ^
SyntaxError: invalid syntax 

私はこのエラーを検索した後、私はその理由は、私のPythonのバージョンだと思います。 まだわからないので、私はあなたに尋ねています。

これを修正する方法はありますか?理由が本当に私のPythonのバージョンであれば、私のコードやすべてを傷つけることなく、私のpythonのバージョンを更新できますか?

答えて

1

問題は、Python 3.x(https://docs.python.org/3/whatsnew/3.0.html?highlight=metaclass#changed-syntax)のメタクラス構文の変更に関連しています。django-scarfaceは3.xを指向しています。私はこれにplatform_strategy.py(38行目)に変更(Pythonの2.7.35で)問題を解決した:

class PlatformStrategy(): 
    __metaclass__ = ABCMeta 

私はgithubのプロジェクトにプルリクエストを提出した:https://github.com/dreipol/django-scarface/pull/11

+0

問題の後、私はscarfaceを使用せず、boto3パッケージを使用しました。しかし、あなたの助けに感謝:) –

1

パッケージングの説明では、Python 2.7はhttps://github.com/dreipol/django-scarface/blob/master/setup.py#L30に対応しています。

Python 2.7.10でvirtualenvの中でパッケージテストhttps://github.com/dreipol/django-scarface/blob/master/scarface/tests.pyを実行して、それらが合格するかどうかを調べることができます。彼らがしなければ、あなたのコードに何も問題はありません。彼らが合格した場合、問題はパッケージ自体に含まれていない可能性があります。

+0

私はこの問題を解決することができませんでした。だから私は3.4.3に私のpythonのバージョンを更新し、互換性の問題を解決する時間後に、今それは最終的に動作します:) –

+0

素晴らしい! Githubに問題を報告すると、このパッケージの他のユーザーがあなたと同じ問題に遭遇することはありません。 –