Python Error: NameError: global name 'ftp' is not defined

user2836976

I'm having an issue with trying to declare a global ftp object. I want the ftp connection to be check at certain times and refreshed or reconnected. I'm trying to use a global variable, since I want to catch any errors within another function.

I've tried putting 'global ftp' all over the place, and it doesn't seem to help anywhere. I have a feeling that this has something to do with the fact that FTP(ftpIP) returns a new instance of the ftp class each time it's called, but I'm not sure. Or is it not possible to declare a global object?

def ftpKeepAlive():
    global ftp
    # Keep FTP alive
    ftp.voidcmd('NOOP')         # Send a 'NOOP' command every 30 seconds

def ftpConnect():
    try:
        ftp = FTP(ftpIP)                # This times out after 20 sec
        ftp.login(XXXXX)
        ftp.cwd(ftpDirectory)

        ftp_status = 1

    except Exception, e:
        print str(e)
        ftp_status = 0
        pass



# Initialize FTP
ftpIP = '8.8.8.8'           # ftp will fail on this IP
ftp_status = 0

global ftp
ftpConnect()


while (1):
    if (second == 30):
        global ftp
        ftpKeepAlive()
EduardoCMB

The problem is that you define it in that many places, but you don't initialize it as needed. Try to define it only once and make sure you initialize it before trying to use it.

The code below results in the same NameError:

global ftp
ftp.voidcmd('NOOP')

But the code below results in a connection error (as expected):

from ftplib import *

global ftp
ftp = FTP('127.0.0.1')
ftp.voidcmd('NOOP')

I've made some adjustments to your code to get it closer to what I mean. Here it is:

from ftplib import *

global ftp

def ftpKeepAlive():
    # Keep FTP alive
    ftp.voidcmd('NOOP')         # Send a 'NOOP' command every 30 seconds

def ftpConnect():
    try:
        ftp = FTP(ftpIP)                # This times out after 20 sec
        ftp.login(XXXXX)
        ftp.cwd(ftpDirectory)

        ftp_status = 1

    except Exception, e:
        print str(e)
        ftp_status = 0
        pass

# Initialize FTP
ftpIP = '8.8.8.8'           # ftp will fail on this IP
ftp_status = 0

ftpConnect()

while (1):
    if (second == 30):
        ftpKeepAlive()

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

NameError: global name Error in Class , but is actually defined

From Dev

Python Error NameError: name '…' is not defined

From Dev

NameError: global name 'object' is not defined Python

From Dev

Python NameError: global name 'Thread' is not defined

From Java

NameError: global name 'xrange' is not defined in Python 3

From Java

NameError: global name 'unicode' is not defined - in Python 3

From Dev

NameError: global name is not defined in genexpr in python

From Dev

Python PIL NameError global name Image is not defined

From Dev

Python, Tkinter: NameError: global name 'Combobox' is not defined

From Dev

Python Server NameError: global name 'SocketError' is not defined

From Dev

Python and tkinter: NameError: global name 'roomChange' is not defined

From Dev

Python NameError: global name 'resolution' is not defined

From Dev

Python PIL NameError global name Image is not defined

From Dev

Python, Tkinter: NameError: global name 'Combobox' is not defined

From Dev

Python Server NameError: global name 'SocketError' is not defined

From Dev

python name error: NameError: name 'Jewels' is not defined

From Dev

Error with python 'NameError: name '' is not defined' python 2.7.12

From Dev

Python input error: NameError: name 'test' is not defined

From Dev

Python NameError: name 'keys' is not defined error pynput

From Dev

NameError: name 'one' is not defined python 3.4 error

From Dev

NameError: global name 'numpy' is not defined

From Dev

NameError: global name 'END' is not defined

From Dev

nameerror: global name is not defined in tkinter

From Dev

NameError global name 'ImageDraw' is not defined

From Dev

NameError: global name 'client' is not defined

From Dev

NameError: global name 'stealth' is not defined

From Dev

NameError global name 'ImageDraw' is not defined

From Dev

NameError: global name 'profiles' is not defined

From Dev

nameerror: global name is not defined in tkinter

Related Related

  1. 1

    NameError: global name Error in Class , but is actually defined

  2. 2

    Python Error NameError: name '…' is not defined

  3. 3

    NameError: global name 'object' is not defined Python

  4. 4

    Python NameError: global name 'Thread' is not defined

  5. 5

    NameError: global name 'xrange' is not defined in Python 3

  6. 6

    NameError: global name 'unicode' is not defined - in Python 3

  7. 7

    NameError: global name is not defined in genexpr in python

  8. 8

    Python PIL NameError global name Image is not defined

  9. 9

    Python, Tkinter: NameError: global name 'Combobox' is not defined

  10. 10

    Python Server NameError: global name 'SocketError' is not defined

  11. 11

    Python and tkinter: NameError: global name 'roomChange' is not defined

  12. 12

    Python NameError: global name 'resolution' is not defined

  13. 13

    Python PIL NameError global name Image is not defined

  14. 14

    Python, Tkinter: NameError: global name 'Combobox' is not defined

  15. 15

    Python Server NameError: global name 'SocketError' is not defined

  16. 16

    python name error: NameError: name 'Jewels' is not defined

  17. 17

    Error with python 'NameError: name '' is not defined' python 2.7.12

  18. 18

    Python input error: NameError: name 'test' is not defined

  19. 19

    Python NameError: name 'keys' is not defined error pynput

  20. 20

    NameError: name 'one' is not defined python 3.4 error

  21. 21

    NameError: global name 'numpy' is not defined

  22. 22

    NameError: global name 'END' is not defined

  23. 23

    nameerror: global name is not defined in tkinter

  24. 24

    NameError global name 'ImageDraw' is not defined

  25. 25

    NameError: global name 'client' is not defined

  26. 26

    NameError: global name 'stealth' is not defined

  27. 27

    NameError global name 'ImageDraw' is not defined

  28. 28

    NameError: global name 'profiles' is not defined

  29. 29

    nameerror: global name is not defined in tkinter

HotTag

Archive