import doesn't work as i want

Discussion in 'Python' started by Olivier Noblanc ATOUSOFT, Jan 31, 2005.

  1. Hello,

    In the botom of this post you will see my source code.

    The problem is when i launch main.py that doesn't make anything why ?

    Thanks
    olivier noblanc
    Atousoft
    http://www.logiciel-erp.fr



    I have main.py :

    ---------------------------------
    import wx
    import inc.importlist
    ----------------------------------

    inc/importlist.py
    ------------------------------------
    import wx.grid
    import getdata
    import time
    import sys
    -----------------------------------

    inc/wxgrid.py
    -------------------------------------
    # -*- coding: cp1252 -*-


    #starta = time.time()
    import wx
    import getdata

    class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
    # begin wxGlade: MyFrame.__init__
    kwds["style"] = wx.DEFAULT_FRAME_STYLE
    wx.Frame.__init__(self, *args, **kwds)
    self.grid_1 = wx.grid.Grid(self, -1, size=(1, 1))

    self.__set_properties()
    self.__do_layout()
    # end wxGlade

    def __set_properties(self):
    # begin wxGlade: MyFrame.__set_properties
    self.SetTitle("frame_1")
    self.SetSize((400, 400))
    # end wxGlade

    self.grid_1.CreateGrid(len(db.data), len(db.fields))

    # met les labels des colonnes
    index = 0
    for item in db.fields:
    self.grid_1.SetColLabelValue(index, item[0])
    index += 1

    # remplissage des données.
    for row in range(len(db.data)):
    for col in range(len(db.data[row])):
    values = db.data[row][col]
    self.grid_1.SetCellValue(row,col,str(values))

    # mise en forme et affichage
    def __do_layout(self):
    # begin wxGlade: MyFrame.__do_layout
    sizer_1 = wx.BoxSizer(wx.VERTICAL)
    sizer_1.Add(self.grid_1, 1, wx.EXPAND, 0)
    self.SetAutoLayout(True)
    self.SetSizer(sizer_1)
    self.Layout()
    # end wxGlade

    # end of class MyFrame


    if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(None, -1, "")
    app.SetTopWindow(frame_1)
    frame_1.Show()
    #startb = time.time() - starta
    #print startb
    app.MainLoop()


    ---------------------------------------

    inc/getdata.py
    ----------------------------------------------
    import MySQLdb


    class Eb_db:
    def __init__(self):
    try:
    connection = MySQLdb.connect(host="dellced", user="ats",
    passwd="", db="atsmedicdatabase" )
    cursor = connection.cursor()
    cursor.execute( "SELECT * FROM PATIENT " )
    except MySQLdb.OperationalError, message:
    errorMessage = "Error %d:\n%s" % ( message[ 0 ], message[ 1 ] )
    return
    else:
    self.data = cursor.fetchall()
    self.fields = cursor.description
    cursor.close()
    connection.close()


    -----------------------------------------
    Olivier Noblanc ATOUSOFT, Jan 31, 2005
    #1
    1. Advertising

  2. Olivier Noblanc wrote:

    > In the botom of this post you will see my source code.
    >
    > The problem is when i launch main.py that doesn't make anything why ?


    the "if __name__" statement checks the name of the module. if you run
    Python file as a script, by passing a filename to the python interpreter, the
    __name__ variable is set to "__main__". if you import a file as a module,
    the __name__ is the name of the module, not "__main__".

    if you want main.py to do something, move that code to main.py (or move
    it into a function, and call it from main.py)

    </F>
    Fredrik Lundh, Jan 31, 2005
    #2
    1. Advertising

  3. how to move in function ?

    "Fredrik Lundh" <> a écrit dans le message de news:
    ...
    > Olivier Noblanc wrote:
    >
    >> In the botom of this post you will see my source code.
    >>
    >> The problem is when i launch main.py that doesn't make anything why ?

    >
    > the "if __name__" statement checks the name of the module. if you run
    > Python file as a script, by passing a filename to the python interpreter,
    > the
    > __name__ variable is set to "__main__". if you import a file as a
    > module,
    > the __name__ is the name of the module, not "__main__".
    >
    > if you want main.py to do something, move that code to main.py (or move
    > it into a function, and call it from main.py)
    >
    > </F>
    >
    >
    Olivier Noblanc ATOUSOFT, Jan 31, 2005
    #3
  4. Olivier Noblanc wrote:

    > how to move in function ?


    how to put code in a function? the same way you put code in a method.

    change

    if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(None, -1, "")
    app.SetTopWindow(frame_1)
    frame_1.Show()
    #startb = time.time() - starta
    #print startb
    app.MainLoop()

    to

    def main():
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(None, -1, "")
    app.SetTopWindow(frame_1)
    frame_1.Show()
    #startb = time.time() - starta
    #print startb
    app.MainLoop()

    and call it from your main program:

    import inc.wxgrid
    inc.wxgrid.main()

    if you have trouble sorting out the imports, this might help:

    http://docs.python.org/ref/import.html
    http://www.python.org/doc/essays/packages.html
    http://effbot.org/zone/import-confusion.htm

    </F>
    Fredrik Lundh, Jan 31, 2005
    #4
  5. Olivier Noblanc ATOUSOFT

    John Lenton Guest

    On Mon, Jan 31, 2005 at 04:52:24PM +0100, Olivier Noblanc ATOUSOFT wrote:
    > Hello,
    >
    > In the botom of this post you will see my source code.
    >
    > The problem is when i launch main.py that doesn't make anything why
    > ?


    I'm guessing you don't have an __init__.py in inc/

    --
    John Lenton () -- Random fortune:
    /* now make a new head in the exact same spot */
    -- Larry Wall in cons.c from the perl source code

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.5 (GNU/Linux)

    iD8DBQFB/58QgPqu395ykGsRAttQAJ9Ty+lytzr9Nlz+UZZTN3W0bCfVQACdHhIh
    ULhyExDNjL491Uh++eLGyqI=
    =TsBl
    -----END PGP SIGNATURE-----
    John Lenton, Feb 1, 2005
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. xan
    Replies:
    1
    Views:
    362
    Rick Spiewak
    Apr 26, 2004
  2. Dennis
    Replies:
    2
    Views:
    489
    Dennis
    Aug 18, 2003
  3. Archie
    Replies:
    6
    Views:
    319
    mingze zhang
    Jun 30, 2010
  4. Richard \(MrBonus\)

    onBeforeUnload doesn't work quite the way I want it too

    Richard \(MrBonus\), Sep 2, 2004, in forum: Javascript
    Replies:
    1
    Views:
    111
    Robert
    Sep 7, 2004
  5. Rotwang
    Replies:
    3
    Views:
    286
    Rotwang
    Apr 25, 2012
Loading...

Share This Page