python - instalar - NameError: el nombre global no está definido
como instalar pytesseract (4)
Así es como funciona Python. Prueba esto :
from sqlitedbx import SqliteDBzz
De modo que pueda usar directamente el nombre sin el módulo adjunto. O simplemente importe el módulo y anteponga ''sqlitedbx.'' a su función, clase, etc.
Estoy usando Python 2.6.1 en Mac OS X.
Tengo dos archivos simples de Python (abajo), pero cuando corro
python update_url.py
Me meto en la 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
Traté de cambiar el nombre de los archivos y las clases de forma diferente, por lo que hay x y z en los extremos. ;)
Archivo sqlitedbx.py
class SqliteDBzz:
connection = ''''
curser = ''''
def connect(self):
print "foo"
def find_or_create(self, table, column, value):
print "baar"
Archivo update_url.py
import sqlitedbx
def main():
db = SqliteDBzz()
db.connect
if __name__ == "__main__":
main()
Importar el espacio de nombres es algo más limpio. Imagine que tiene dos módulos diferentes que importa, ambos con el mismo método / clase. Algunas cosas malas pueden suceder. Me atrevería a decir que generalmente es una buena práctica usar:
import module
encima
from module import function/class
Necesitas hacer:
import sqlitedbx
def main():
db = sqlitedbx.SqliteDBzz()
db.connect()
if __name__ == "__main__":
main()
tratar
from sqlitedbx import SqliteDBzz