导入matplotlib2tikz会导致SyntaxError:语法无效

时间:2019-04-06 23:29:06

标签: python matplotlib tikz

我有一个小的python脚本(python 2.7),我想在其中使用matplotlib2tikz为我的图形生成tex文件。

我尝试将模块导入为:

import matplotlib2tikz

运行脚本时,我立即收到以下错误(导入时失败):

```
Traceback (most recent call last):
File "./get_violinplot.py", line 3, in <module>
import matplotlib2tikz
File "/x/.local/lib/python2.7/site- 
packages/matplotlib2tikz/__init__.py", line 16, in <module>
from matplotlib2tikz.save import get_tikz_code, save
File "/x/.local/lib/python2.7/site- 
packages/matplotlib2tikz/save.py", line 238
def save(filepath, *args, encoding=None, **kwargs):
                                 ^
SyntaxError: invalid syntax
```

快速搜索后,我觉得它可能与系统中语言环境的设置有关(新安装的Ubuntu 16.04)。手动生成它们后,终端中$ locale命令的输出显示如下:

```
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
```

有什么解决方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

以Python2不支持的方式声明的save函数的参数。

它适用于Python 3。

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def function(filepath, *args, encoding=None, **kwargs):
...   pass
...
>>>

答案 1 :(得分:0)

我有同样的问题,因为我使用的是Python2。但是我去了源代码,只是在函数save的定义(save.py中的256行)中交换了“ * args”和“ encoding = None”的顺序。为了我的目的,这解决了问题。