UnboundLocalError: local variable referenced before assignment

Richard Thomas chardster at gmail.com
Tue Jun 8 04:29:48 EDT 2010


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.



More information about the Python-list mailing list