django scarface不在python 2.7中工作

django scarface不在python 2.7中工作,python,django,python-2.7,Python,Django,Python 2.7,我的操作系统是OSX El Capitan 版本: Python 2.7.10 Django 1.9.2 Django Scarface 3.0 在我安装scarface并将其添加到已安装的应用程序后,它会出现此错误,我无法运行我的应用程序 Unhandled exception in thread started by <function wrapper at 0x1043dbe60> Traceback (most recent call last): File "/Us

我的操作系统是OSX El Capitan

版本:

  • Python 2.7.10
  • Django 1.9.2
  • Django Scarface 3.0
在我安装scarface并将其添加到已安装的应用程序后,它会出现此错误,我无法运行我的应用程序

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
由启动的线程中未处理的异常 回溯(最近一次呼叫最后一次): 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/django/utils/autoreload.py”,第226行,在包装器中 fn(*args,**kwargs) 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/django/core/management/commands/runserver.py”,第109行,在内部运行 autoreload.raise\u last\u异常() 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/django/utils/autoreload.py”,第249行,在raise\u last\u异常中 六、重放(*_例外) 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/django/utils/autoreload.py”,第226行,在包装器中 fn(*args,**kwargs) 文件“/Users/mcagataybarin/molotate-dev/env/lib/python2.7/site-packages/django/_-init__.py”,第18行,在安装程序中 应用程序。填充(设置。已安装的应用程序) 文件“/Users/mcagataybarin/molotate-dev/env/lib/python2.7/site-packages/django/apps/registry.py”,第108行,填充 app_config.import_models(所有_models) 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/django/apps/config.py”,第202行,在导入模型中 self.models\u module=导入模块(models\u module\u name) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/_init__.py”,第37行,在导入模块中 __导入(名称) 文件“/Users/mcagataybarin/molotate-dev/env/lib/python2.7/site-packages/scarface/models.py”,第7行,在 从scarface.platform\u策略导入获取策略 文件“/Users/mcagataybarin/molotate dev/env/lib/python2.7/site packages/scarface/platform_strategy.py”,第38行 类平台策略(元类=ABCMeta): ^ SyntaxError:无效语法 在我搜索了这个错误之后,我认为原因是我的python版本。 我还是不确定,所以我要问你


有办法解决这个问题吗?如果原因真的是我的Python版本,我如何才能在不损坏代码和所有内容的情况下更新Python版本?

在打包说明中,支持Python 2.7


您可以使用Python2.7.10在virtualenv中运行包测试,看看它们是否通过。如果他们没有,那么你的代码就没有问题。如果他们通过了,那么问题可能不在包本身。

问题与Python 3.x()中的元类语法更改有关,django scarface是面向3.x的。我将platform_strategy.py(第38行)中的问题(使用Python 2.7.x)更改为:

class PlatformStrategy():
    __metaclass__ = ABCMeta

我在github项目中提交了一个请求:

我无法解决这个问题。因此,我已经将python版本更新为3.4.3,经过数小时的兼容性问题解决,现在终于可以工作了:)太棒了!你可以将你的问题作为bug提交给Github,如果你认为是这样的话,这个包的其他用户可能不会遇到与你相同的问题。问题发生后,我没有使用scarface,而是使用了boto3包。但是谢谢你的帮助:)