472,353 Members | 1,490 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,353 software developers and data experts.

TypeError: 'module' object is not callable (newby question)

Why does this work from the python prompt, but fail from a script?
How does one make it work from a script?

#! /usr/bin/python
import glob
# following line works from python prompt; why not in script?
files=glob.glob('*.py')
print files

Traceback (most recent call last):
File "./glob.py", line 2, in ?
import glob
File "/home/cdr/python/glob.py", line 5, in ?
files=glob.glob('*.py')
TypeError: 'module' object is not callable
Aug 14 '06 #1
10 11263
works for me. do you do anything in your script besides that?
Charles Russell wrote:
Why does this work from the python prompt, but fail from a script?
How does one make it work from a script?

#! /usr/bin/python
import glob
# following line works from python prompt; why not in script?
files=glob.glob('*.py')
print files

Traceback (most recent call last):
File "./glob.py", line 2, in ?
import glob
File "/home/cdr/python/glob.py", line 5, in ?
files=glob.glob('*.py')
TypeError: 'module' object is not callable
Aug 14 '06 #2
In <yp2Eg.1858$VQ.825@trndny05>, Charles Russell wrote:
Why does this work from the python prompt, but fail from a script?
How does one make it work from a script?

#! /usr/bin/python
import glob
# following line works from python prompt; why not in script?
files=glob.glob('*.py')
print files

Traceback (most recent call last):
File "./glob.py", line 2, in ?
import glob
File "/home/cdr/python/glob.py", line 5, in ?
files=glob.glob('*.py')
TypeError: 'module' object is not callable
Don't call your file `glob.py` because then you import this module and not
the `glob` module from the standard library.

Ciao,
Marc 'BlackJack' Rintsch
Aug 14 '06 #3
Charles Russell wrote:
Why does this work from the python prompt, but fail from a script?
How does one make it work from a script?

#! /usr/bin/python
import glob
# following line works from python prompt; why not in script?
files=glob.glob('*.py')
print files

Traceback (most recent call last):
File "./glob.py", line 2, in ?
import glob
File "/home/cdr/python/glob.py", line 5, in ?
files=glob.glob('*.py')
TypeError: 'module' object is not callable
Short answer: Change the name of your script file.

Long answer:

<humour>
It is attempting to emulate the mythical ooloo bird, which is allegedly
capable of evading would-be predators by vanishing up its own
fundamental orifice. This topological exploit won't be available in
Python until the as yet still mythical Python 3000.
</humour>

Contemplate the following:

C:\junk>type glob.py
if __name__ == "__main__":
print "*** Being run as a script ..."
import glob
print "glob was imported from", glob.__file__
print "glob.glob is", type(glob.glob)
print "glob.glob was imported from", glob.glob.__file__
print "(glob.glob is glob) is", glob.glob is glob
print "--- end of script"
else:
print "*** Aarrgghh!! I'm being imported as", __name__
import glob
print "glob was imported from", glob.__file__
print "glob.glob is", type(glob.glob)
print "glob.glob was imported from", glob.glob.__file__
print "(glob.glob is glob) is", glob.glob is glob
print "--- end of import"

C:\junk>glob.py
*** Being run as a script ...
*** Aarrgghh!! I'm being imported as glob
glob was imported from C:\junk\glob.pyc
glob.glob is <type 'module'>
glob.glob was imported from C:\junk\glob.pyc
(glob.glob is glob) is True
--- end of import
glob was imported from C:\junk\glob.pyc
glob.glob is <type 'module'>
glob.glob was imported from C:\junk\glob.pyc
(glob.glob is glob) is True
--- end of script

HTH,
John

C:\junk>

Aug 14 '06 #4
Marc 'BlackJack' Rintsch wrote:
>
Don't call your file `glob.py` because then you import this module and not
the `glob` module from the standard library.

Ciao,
Marc 'BlackJack' Rintsch
Yes, thanks. Renaming to myglob.py solved the problem. But why does the
conflict not occur when the code is run interactively from the python
prompt? Somewhat related - I haven't found the magic word to invoke a
..py script from the python prompt (like the command "source" in csh,
bash, tcl?) "import" runs the script, but then complains that it is not
a module.
Aug 14 '06 #5
John Machin wrote:
>
Contemplate the following:

C:\junk>type glob.py
if __name__ == "__main__":
print "*** Being run as a script ..."
import glob
print "glob was imported from", glob.__file__
print "glob.glob is", type(glob.glob)
print "glob.glob was imported from", glob.glob.__file__
print "(glob.glob is glob) is", glob.glob is glob
print "--- end of script"
else:
print "*** Aarrgghh!! I'm being imported as", __name__
import glob
print "glob was imported from", glob.__file__
print "glob.glob is", type(glob.glob)
print "glob.glob was imported from", glob.glob.__file__
print "(glob.glob is glob) is", glob.glob is glob
print "--- end of import"
Thanks. Another newby question: __name__ and __file__ appear to be
predefined variables. To look up their meaning in the manual, is there
some method less clumsy than grepping the whole collection of .html
source files? I can't find any comprehensive index.
Aug 14 '06 #6
Charles Russell wrote:

But why does the
conflict not occur when the code is run interactively from the python
prompt?
Because, I now realize, I had not yet created glob.py when I tried that.
Aug 14 '06 #7

Charles Russell wrote:
Marc 'BlackJack' Rintsch wrote:

Don't call your file `glob.py` because then you import this module and not
the `glob` module from the standard library.

Ciao,
Marc 'BlackJack' Rintsch

Yes, thanks. Renaming to myglob.py solved the problem. But why does the
conflict not occur when the code is run interactively from the python
prompt?
It does for me on Windows -- see below --because '' (representing the
cwd) is injected at the front of sys.path. *xMMV of course. Or perhaps
when you ran it your cwd was some other directory.

C:\junk>dir glob*
[snip]
15/08/2006 04:28 AM 662 glob.py
15/08/2006 04:28 AM 592 glob.pyc
[snip]
C:\junk>python
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
|>>import glob
*** Aarrgghh!! I'm being imported as glob
glob was imported from glob.pyc
glob.glob is <type 'module'>
glob.glob was imported from glob.pyc
(glob.glob is glob) is True
--- end of import
|>>>

Cheers,
John

Aug 14 '06 #8
In <0E5Eg.19638$yE1.18048@trndny02>, Charles Russell wrote:
Another newby question: __name__ and __file__ appear to be
predefined variables. To look up their meaning in the manual, is there
some method less clumsy than grepping the whole collection of .html
source files? I can't find any comprehensive index.
Here's the index of the reference manual:

http://docs.python.org/ref/genindex.html

Ciao,
Marc 'BlackJack' Rintsch
Aug 15 '06 #9
Charles Russell wrote:
I haven't found the magic word to invoke a
.py script from the python prompt (like the command "source" in csh,
bash, tcl?)
Seems to be execfile()
Aug 15 '06 #10
Marc 'BlackJack' Rintsch wrote:
Here's the index of the reference manual:

http://docs.python.org/ref/genindex.html
Thanks. When I go up a level from there, I find a pointer to the index
right at the bottom of the table of contents, which I had overlooked.
Aug 15 '06 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Atul Kshirsagar | last post by:
Hello, I am using Python 2.3.2 with a C++ extention DLL in muti-threaded environment. 1. For each new thread I create a separate...
7
by: ‘5ÛHH575-UAZWKVVP-7H2H48V3 | last post by:
(see end of message for example code) When an instance has a dynamically assigned instance method, deepcopy throws a TypeError with the message...
5
by: sophie_newbie | last post by:
OK this might seem like a retarded question, but what is the difference between a library and a module? If I do: import string am I...
5
by: Randall Parker | last post by:
Using Python 2.4.2 on Windows 2000 in SPE. Getting: TypeError: 'str' object is not callable on this line: TmpErrMsg1 = "State machine %s "...
1
by: Gary Wessle | last post by:
dear python users I am not sure why I am getting **************************************************************** Traceback (most recent call...
2
by: AWasilenko | last post by:
I'm trying to test a few different approaches to displaying pages via Cherrypy and I'm not having much luck. Here is my code so far: import sys,...
33
by: christophertidy | last post by:
Hi I am new to Python and have recieved this error message when trying to instantiate an object from a class from another file within the same...
18
by: Charlie of Bolton | last post by:
Hi, everybody, Did work hard on this one, as I`m a newbies... I did write the entire below script... This script is suppose to ping: a...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
0
jalbright99669
by: jalbright99669 | last post by:
Am having a bit of a time with URL Rewrite. I need to incorporate http to https redirect with a reverse proxy. I have the URL Rewrite rules made...
0
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. ...
2
by: Matthew3360 | last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
0
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web...
0
by: Carina712 | last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand....
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.