Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ReportLab AssertionError:路径必须以moveto或rect开头_Python_Reportlab - Fatal编程技术网

Python ReportLab AssertionError:路径必须以moveto或rect开头

Python ReportLab AssertionError:路径必须以moveto或rect开头,python,reportlab,Python,Reportlab,我使用Python3.6和当前的reportlab和svg2rlg库(截至发帖时)尝试了这一点,但标题中出现了错误: from reportlab.graphics import renderPDF from svglib.svglib import svg2rlg c = Canvas(path+'To Print.pdf') img27 = svg2rlg(path_to_.svg') wd27 = img27.width/inch ht27 = img27.height/inch ren

我使用Python3.6和当前的reportlab和svg2rlg库(截至发帖时)尝试了这一点,但标题中出现了错误:

from reportlab.graphics import renderPDF
from svglib.svglib import svg2rlg

c = Canvas(path+'To Print.pdf')
img27 = svg2rlg(path_to_.svg')
wd27 = img27.width/inch
ht27 = img27.height/inch
renderPDF.draw(img27, c, x=x27, y=y27)
它通常工作正常,我不知道如何排除故障。 我已尝试搜索此错误,但在任何地方都找不到

以下是完整的回溯:

File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/Users/Drive/Scripts/PDF.py", line 604, in <module>
    renderPDF.draw(img27, c, x=x27, y=y27)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 29, in draw
    R.draw(renderScaledDrawing(drawing), canvas, x, y, showBoundary=showBoundary)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 201, in draw
    self.drawNode(drawing)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
    self.drawGroup(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
    self.drawNode(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
    self.drawNodeDispatcher(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 278, in drawNodeDispatcher
    self.drawPath(node)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 183, in drawPath
    isClosed = _renderPath(path, drawFuncs, forceClose=fill and autoclose=='pdf')

  File "/anaconda3/lib/python3.6/site-packages/svglib/svglib.py", line 1075, in patchedRenderPath
    return original_renderPath(path, drawFuncs, **kwargs)

  File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/shapes.py", line 996, in _renderPath
    drawFuncs[op](*points[i:j])

  File "/anaconda3/lib/python3.6/site-packages/reportlab/pdfgen/pathobject.py", line 127, in close
    self._code_append('h')

  File "/anaconda3/lib/python3.6/site-packages/reportlab/pdfgen/pathobject.py", line 36, in _init_code_append
    assert c.endswith(' m') or c.endswith(' re'), 'path must start with a moveto or rect'

AssertionError: path must start with a moveto or rect
运行文件中的第705行“
File”/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”
execfile(文件名、命名空间)
文件“/anaconda3/lib/python3.6/site packages/spyder/utils/site/sitecustomize.py”,第102行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“/Users/Drive/Scripts/PDF.py”,第604行,在
renderPDF.draw(img27,c,x=x27,y=y27)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,绘图中第29行
R.draw(渲染缩放绘制,画布,x,y,showBoundary=showBoundary)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,绘图中第201行
self.drawNode(绘图)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第282行
self.drawGroup(节点)
drawGroup中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第311行
self.drawNode(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第54行,在drawNode中
self.drawNodeDispatcher(节点)
drawNodeDispatcher中的文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderbase.py”,第278行
self.drawPath(节点)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/renderPDF.py”,第183行,位于drawPath中
isClosed=\u renderPath(路径、drawFuncs、forceClose=fill和autoclose='pdf')
文件“/anaconda3/lib/python3.6/site packages/svglib/svglib.py”,第1075行,位于patchedRenderPath中
返回原始渲染路径(路径、drawFuncs、**kwargs)
文件“/anaconda3/lib/python3.6/site packages/reportlab/graphics/shapes.py”,第996行,在_renderPath中
drawFuncs[op](*点[i:j])
文件“/anaconda3/lib/python3.6/site packages/reportlab/pdfgen/pathobject.py”,第127行,关闭
self.\u code\u append('h'))
文件“/anaconda3/lib/python3.6/site packages/reportlab/pdfgen/pathobject.py”,第36行,在初始代码中
断言c.endswith('m')或c.endswith('re'),'path必须以moveto或rect开头'
AssertionError:路径必须以moveto或rect开头

最后一个断言似乎过于热心了

File "/anaconda3/lib/python3.6/site-packages/reportlab/pdfgen/pathobject.py", line 36, in _init_code_append
    assert c.endswith(' m') or c.endswith(' re'), 'path must start with a moveto or rect'
此位置的
c
的实际值为“h”(由堆栈跟踪中正上方的调用填充)。如果您只是注释掉assert,它就可以正常工作


还请让ReportLab的优秀人员知道,以便他们将来能够修复。

请确保您的代码正确无误。什么是
x27
y27
?还有,你是什么意思?这通常有效。从中可以看出,在调用
close()
时,似乎总是会发生此错误。可能此文件
svg
有错误或使用了异常值,模块无法处理。此处也是如此。SVG由matplotlib图生成。如果出现故障,轴不包含任何数据。图不是空的,因为有图例等,只是没有数据。