2016-05-12 14 views
-2

私のpythonコードがsimplifyを使用しようとすると、次のエラーが表示されます。この問題は、(正常に実行される)pyparsingの別のコードファイルを実行した後に表示されます。以前は同じコードがうまくいきました。 編集:sympyでエラーが発生しましたか?

>>> expression="a+b+z" 
>>> t=simplify(expression) 
ast.py:4: SyntaxWarning: invalid pattern (**) passed to Regex 
    operator = pp.Regex("**").setName("operator") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\sympy\simplify\simplify.py", line 507, in simplify 
    expr = sympify(expr) 
    File "C:\Python27\lib\site-packages\sympy\core\sympify.py", line 308, in sympify 
    from sympy.parsing.sympy_parser import (parse_expr, TokenError, 
    File "C:\Python27\lib\site-packages\sympy\parsing\sympy_parser.py", line 11, in <module> 
    import ast 
    File "ast.py", line 4, in <module> 
    operator = pp.Regex("**").setName("operator") 
    File "C:\Python27\lib\site-packages\pyparsing.py", line 1920, in __init__ 
    self.re = re.compile(self.pattern, self.flags) 
    File "C:\Python27\Lib\re.py", line 190, in compile 
    return _compile(pattern, flags) 
    File "C:\Python27\Lib\re.py", line 244, in _compile 
    raise error, v # invalid expression 
sre_constants.error: nothing to repeat 

提案してください?

+0

[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供できますか? –

答えて

2

ローカルファイルast.pyがあります。これは、Pythonの組み込みのast moduleの代わりにインポートされています。名前の競合を避けるために、このファイルを削除または名前を変更する必要があります。これにより、他のモジュールが正しく動作しなくなる可能性があります。

また、あなたの地元のモジュールは、インポート時に例外が発生している次の行が含まれています

operator = pp.Regex("**").setName("operator") 

**は有効regular expressionではありません。正規表現では、*は「前の式の0回以上の繰り返し」を意味します。これは、「何も繰り返さない」(エラーメッセージが示すように)式の先頭には意味がありません。

関連する問題