我有一个小的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
```
有什么解决方法吗?
谢谢!
答案 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”的顺序。为了我的目的,这解决了问题。