UnboundLocalError: local variable referenced before assignment

ch1zra ch1zra at gmail.com
Tue Jun 8 05:00:46 EDT 2010


On Jun 8, 10:29 am, Richard Thomas <chards... at gmail.com> wrote:
> On Jun 8, 9:03 am, ch1zra <ch1... at gmail.com> wrote:
>
>
>
>
>
> > I have following code :
>
> > import os, time, re, pyodbc, Image, sys
> > from datetime import datetime, date, time
> > from reportlab.lib.pagesizes import A4
> > from reportlab.lib.units import cm
> > from reportlab.pdfgen import canvas
> > from reportlab.pdfbase import pdfmetrics
> > from reportlab.pdfbase.ttfonts import TTFont
> > import mkTable
>
> > mkTable.mkTable()
>
> > and then file mkTable.py located in same directory has :
>
> > def mkTable():
> >     global canvas
> >     canvas = canvas.Canvas(fname, pagesize=A4)
> >     ... and so on
>
> > this gives me following traceback:
>
> > Traceback (most recent call last):
> >   File "C:\py\pdf_test.py", line 36, in <module>
> >     mkTable.mkTable()
> >   File "C:\py\mkTable.py", line 38, in mkTable
> >     canvas = canvas.Canvas("K_lista.pdf", pagesize=A4)
> > UnboundLocalError: local variable 'canvas' referenced before
> > assignment
>
> > i haven't posted entire code, because those lines are giving me
> > problems. I've searched the web, and all say that I should make var
> > global inside function. so I did it, but still nothing...
> > using python 2.6.2 and reportlab 2.4
> > help plz :)
>
> The version of mkTable.py you posted is clearly different to the one
> in the traceback. You might want to check that.
>
> Richard.

here's full version of mkTable.py (I've cut out all the drawing code
for clarity)
http://bpaste.net/show/7003/

and it's caller :
http://bpaste.net/show/7004/

and the newest traceback (just generated):

Traceback (most recent call last):
  File "C:\py\pdf_test.py", line 36, in <module>
    mkTable.mkTable()
  File "C:\py\mkTable.py", line 38, in mkTable
    canvas.setFillColorRGB(0.8,0.8,0.8)
UnboundLocalError: local variable 'canvas' referenced before assignment



More information about the Python-list mailing list