使用cookiecutter

时间:2017-07-20 15:18:22

标签: python syntax-error eval try-except cookiecutter

我在Python(2.7)中遇到问题 - 我有一个cookiecutter项目提示输入(通过CLI),然后根据该输入生成我的项目。

我的一个字段是描述,我已经看到添加引号,即'Hello this is'我的“描述”将在我通过eval时导致语法错误:

File "/var/folders/4b/gzszrl3d5fn1q7vvv05s63vmf014cj/T/tmpnJWgqK.py", line 53
    parameters = eval("{u'description': u'Hello this is "my" description'}")
SyntaxError: invalid syntax
ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully

执行此操作的代码部分是:

try:
    parameters = eval("{{ cookiecutter }}")
except:
    print('An error occurred!')
    sys.exit(1)

我的问题是代码永远不会进入except子句,所以我没有机会优雅地退出。

有什么方法可以更好地处理这个问题吗?

P.S。我知道我可以使用一些Jinja2过滤器来清理输入,但我正在寻找一种解决方案,让我可以在不改变输入的情况下处理错误。

1 个答案:

答案 0 :(得分:1)

eval("{u'description': u'Hello this is "my" description'}")是您的问题。

您必须在"之间转义my

eval("{u'description': u'Hello this is \"my\" description'}")