views:

28

answers:

1

So I have two files: File 1 has this method in it:

import MyGlobals
global old_function
def init():
    import ModuleB
    global old_function
    MyGlobals.SomeNumber = 0
    old_function = ModuleB.someClass.function
    ModuleB.someClass.function = someNewFunction

File 2 has a class "someClass" and a class "someOtherClass". That being said. When I run my code on my computer it works great and it does what I expect it to. When I run this code on my friends computer which is the same build of windows 7 with the same python version 2.5.4, and with the same code(on a thumb drive for both) it gets an error "Module does not contain someClass"

I hope this makes sense in what I am trying to say. It is work related therefore code snippets aren't aloud. This one has me extremely stumped on why this would be the case. I even tried "from ModuleB import someClass" to see if someClass would work, but it still said that someClass is not in moduleB, while someCLass is definitely in moduleB...

Any ideas would greatly be appreciated!

+2  A: 

Well, it's fairly clear that you are using different versions of ModuleB. I would hazard a guess that even though you are running the code from a thumb drive, you have put ModuleB.py somewhere else in your PYTHONPATH and it is running that version on your computer, but not on your friend's. This is easy to check:

import ModuleB
print ModuleB.__file__

I'll bet that doesn't print what you're expecting!

On a different note, you don't need the first global declaration in your code snippet -- that's already the global scope.

katrielalex
Wow do I feel like an idiot! It just didn't make sense, and now I see that should of been the first thought.Thank you!
Tim McJilton