Python库中的语法错误,我不知道如何继续

时间:2014-06-24 16:08:42

标签: python pyramid

我正在使用金字塔1.5.1和python 3.2,我刚刚为我的项目添加了相当多的代码和几个库。

在运行development.ini时,我收到以下错误。

如果我不得不猜测,我会说这个特殊的库(看起来像Markupsafe?)与Python3不兼容......但项目页面似乎表明它是。问题是,我没有直接调用这个库,它被另一个很难替换的库使用。

我是Python编程的新手,我想知道我的选项是什么或者最好的调试方法是什么?

(finance-env)user1@finance1:/var/www/finance/corefinance/corefinance$ /var/www/finance/finance-env/bin/pserve /var/www/finance/corefinance/development.ini --reload
Starting subprocess with file monitor
Traceback (most recent call last):
  File "/var/www/finance/finance-env/bin/pserve", line 9, in <module>
    load_entry_point('pyramid==1.5.1', 'console_scripts', 'pserve')()
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/scripts/pserve.py", line 51, in main
    return command.run()
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/scripts/pserve.py", line 316, in run
    global_conf=vars)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/scripts/pserve.py", line 340, in loadapp
    return loadapp(app_spec, name=name, relative_to=relative_to, **kw)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
    return context.create()
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/paste/deploy/loadwsgi.py", line 710, in create
    return self.object_type.invoke(self)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/paste/deploy/util.py", line 55, in fix_call
    val = callable(*args, **kw)
  File "/var/www/finance/corefinance/corefinance/__init__.py", line 35, in main
    session_factory=session_factory
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/config/__init__.py", line 301, in __init__
    exceptionresponse_view=exceptionresponse_view,
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/config/__init__.py", line 412, in setup_registry
    self.include(inc)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/config/__init__.py", line 755, in include
    c(configurator)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid_debugtoolbar-2.1-py3.2.egg/pyramid_debugtoolbar/__init__.py", line 113, in includeme
    config.include('pyramid_mako')
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/config/__init__.py", line 727, in include
    c = self.maybe_dotted(callable)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/config/__init__.py", line 825, in maybe_dotted
    return self.name_resolver.maybe_resolve(dotted)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/path.py", line 320, in maybe_resolve
    return self._resolve(dotted, package)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/path.py", line 327, in _resolve
    return self._zope_dottedname_style(dotted, package)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid/path.py", line 370, in _zope_dottedname_style
    found = __import__(used)
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/pyramid_mako-1.0.2-py3.2.egg/pyramid_mako/__init__.py", line 18, in <module>
    from mako.lookup import TemplateLookup
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/Mako-1.0.0-py3.2.egg/mako/lookup.py", line 9, in <module>
    from mako.template import Template
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/Mako-1.0.0-py3.2.egg/mako/template.py", line 10, in <module>
    from mako.lexer import Lexer
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/Mako-1.0.0-py3.2.egg/mako/lexer.py", line 11, in <module>
    from mako import parsetree, exceptions, compat
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/Mako-1.0.0-py3.2.egg/mako/parsetree.py", line 9, in <module>
    from mako import exceptions, ast, util, filters, compat
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/Mako-1.0.0-py3.2.egg/mako/filters.py", line 38, in <module>
    import markupsafe
  File "/var/www/finance/finance-env/lib/python3.2/site-packages/MarkupSafe-0.23-py3.2-linux-x86_64.egg/markupsafe/__init__.py", line 70
    def __new__(cls, base=u'', encoding=None, errors='strict'):
                            ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:4)

MarkupSafe包只使用Python 3.3及更高版本支持的语法。从version 0.16开始,不再支持Python 3.2。

PEP 414中引入了u'unicode'文字语法,以便更轻松地创建可以同时支持Python 2和3的库代码。

升级到Python 3.3(或3.4甚至),或将MarkupSafe降级到0.15,这是支持Python 3.2的最后一个版本。

当你使用Python 3.2时,我确实看到Mako removes the MarkupSafe dependency;如果没有别的东西取决于它可能是安全的完全删除包。如果未安装软件包,mako.filter source code肯定会回退到本地实现。