NameError: global name is not defined


Question

I'm using Python 2.6.1 on Mac OS X.

I have two simple Python files (below), but when I run

python update_url.py

I get on the terminal:

Traceback (most recent call last):
  File "update_urls.py", line 7, in <module>
    main()
  File "update_urls.py", line 4, in main
    db = SqliteDBzz()
NameError: global name 'SqliteDBzz' is not defined

I tried renaming the files and classes differently, which is why there's x and z on the ends. ;)

File sqlitedbx.py

class SqliteDBzz:
    connection = ''
    curser = ''

    def connect(self):
        print "foo"

    def find_or_create(self, table, column, value):
        print "baar"

File update_url.py

import sqlitedbx

def main():
    db = SqliteDBzz()
    db.connect

if __name__ == "__main__":
    main()
1
26
6/10/2012 9:21:24 PM

Accepted Answer

You need to do:

import sqlitedbx

def main():
    db = sqlitedbx.SqliteDBzz()
    db.connect()

if __name__ == "__main__":
    main()
30
10/20/2010 11:20:04 AM

try

from sqlitedbx import SqliteDBzz

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon