2015-11-04 80 views
1

当我运行以下代码时:http://dpaste.com/0210P09在我的Linux发行版中,一切正常。使用text.usetex时不能将matplotlib图保存到.eps中:True

但是,在Windows7(64位)中,我无法将它成功保存在epssvg中。

这是我的错误:

Traceback (most recent call last): 

    File "<ipython-input-1-b8da411d11b0>", line 1, in <module> 
    runfile('C:/Users/12151056/Documents/Python Scripts/MyPython/1Tplot_2.py', wdir='C:/Users/12151056/Documents/Python Scripts/MyPython') 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile 
    execfile(filename, namespace) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile 
    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace) 

    File "C:/Users/12151056/Documents/Python Scripts/MyPython/1Tplot_2.py", line 67, in <module> 
    plt.savefig('excel-6.eps') 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 577, in savefig 
    res = fig.savefig(*args, **kwargs) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1476, in savefig 
    self.canvas.print_figure(*args, **kwargs) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backend_bases.py", line 2211, in print_figure 
    **kwargs) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1009, in print_eps 
    return self._print_ps(outfile, 'eps', *args, **kwargs) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1033, in _print_ps 
    **kwargs) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1398, in _print_figure_tex 
    rotated=psfrag_rotated) 

    File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1556, in gs_distill 
    your image.\nHere is the full report generated by ghostscript:\n\n' + fh.read()) 

TypeError: Can't convert 'bytes' object to str implicitly 

如果我使用text.usetex : False我有一点问题都没有。

我已经安装了livetex和Ghostscript。

任何建议来尝试解决它?

回答

3

这里有两个问题。第一和次要之一是,在

C:\用户\ 12151056 \应用程序数据\本地\连续\ Anaconda3 \ lib中\站点包\ matplotlib \后端\ backend_ps.py”,线1556

你应该改变

fh.read() 

fh.read().decode() 

这是一个Python 2/3的错误,即当发生处理Ghostscript出错的事实。

主要问题是matplotlib找不到Ghostscript,因为它不在路径环境变量中。您可以通过打开命令提示符并尝试命令gswin32cgs来检查。如果未找到这些命令,则必须将这些Ghostscript可执行文件的路径添加到路径环境变量中。在我的情况是:

C:\ Program Files文件(x86)的\ GS \ gs8.54 \ BIN

但它取决于你的安装路径。

+0

鉴于您的安装路径,您似乎需要手动安装Ghostscript?我期望Anaconda自己处理/提供它的依赖关系。 – Bart

+0

我没有anaconda但仍有问题。 anaconda通常应该将ghostscript添加到路径变量中吗?也许将标准anaconda ghostscript安装路径纳入答案会很好。 – Jannick

+0

@Bart,我手动安装了Ghostscript,看看它是否有助于解决问题。 –