470,631 Members | 2,155 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,631 developers. It's quick & easy.

Simple import question about mac osx

Hi, I have this code (learning from Core Python, Chun's book), module
named chap2.py.

class FooClass(object):
version=0.1

def __init__(self, nm='John Doe'):
self.name=nm
print 'Created a class instance for ', nm
def showname(self):
print 'Your name is', self.name
print 'My name is', self.__class__.__name__

On Windows, if I compile this and then in the python interpreter type:
>>import chap2
foo1=FooClass()
Created a class instance for John Doe
>>>
If I do the same think on my Mac OS X 10.5.2

NameError: name 'FooClass' is not defined.

I thought it was the path and did export PATH=$PATH:/mypath/
topythoncode

but it did not help.

What am I doing wrong? Thank you.
Jun 27 '08 #1
8 1029
On Apr 29, 1:16*pm, jmDesktop <needin4mat...@gmail.comwrote:
Hi, I have this code (learning from Core Python, Chun's book), module
named chap2.py.

class FooClass(object):
* * * * version=0.1

* * * * def __init__(self, nm='John Doe'):
* * * * * * * * self.name=nm
* * * * * * * * print 'Created a class instance for ', nm
* * * * def showname(self):
* * * * * * * * print 'Your name is', self.name
* * * * * * * * print 'My name is', self.__class__.__name__

On Windows, if I compile this and then in the python interpreter type:
>import chap2
foo1=FooClass()

Created a class instance for *John Doe

If I do the same think on my Mac OS X 10.5.2

NameError: name 'FooClass' is not defined.

I thought it was the path and did export PATH=$PATH:/mypath/
topythoncode

but it did not help.

What am I doing wrong? *Thank you.
forgot to say that on the mac I can do import chap2, but when I try
and instantiate I get the error above.
Jun 27 '08 #2
On Apr 29, 12:46 pm, jmDesktop <needin4mat...@gmail.comwrote:
On Apr 29, 1:16 pm, jmDesktop <needin4mat...@gmail.comwrote:
Hi, I have this code (learning from Core Python, Chun's book), module
named chap2.py.
class FooClass(object):
version=0.1
def __init__(self, nm='John Doe'):
self.name=nm
print 'Created a class instance for ', nm
def showname(self):
print 'Your name is', self.name
print 'My name is', self.__class__.__name__
On Windows, if I compile this and then in the python interpreter type:
>>import chap2
>>foo1=FooClass()
Created a class instance for John Doe
If I do the same think on my Mac OS X 10.5.2
NameError: name 'FooClass' is not defined.
I thought it was the path and did export PATH=$PATH:/mypath/
topythoncode
but it did not help.
What am I doing wrong? Thank you.

forgot to say that on the mac I can do import chap2, but when I try
and instantiate I get the error above.
It shouldn't work under Windows, either. You have to qualify the name
of the class with the name of the module, as in chap2.FooClass(). Or
you can type "from chap2 import FooClass" and then you'll be able to
simply say FooClass().
Jun 27 '08 #3
On Apr 29, 1:54*pm, s0s...@gmail.com wrote:
On Apr 29, 12:46 pm, jmDesktop <needin4mat...@gmail.comwrote:


On Apr 29, 1:16 pm, jmDesktop <needin4mat...@gmail.comwrote:
Hi, I have this code (learning from Core Python, Chun's book), module
named chap2.py.
class FooClass(object):
* * * * version=0.1
* * * * def __init__(self, nm='John Doe'):
* * * * * * * * self.name=nm
* * * * * * * * print 'Created a class instance for ',nm
* * * * def showname(self):
* * * * * * * * print 'Your name is', self.name
* * * * * * * * print 'My name is', self.__class__.__name__
On Windows, if I compile this and then in the python interpreter type:
>import chap2
>foo1=FooClass()
Created a class instance for *John Doe
If I do the same think on my Mac OS X 10.5.2
NameError: name 'FooClass' is not defined.
I thought it was the path and did export PATH=$PATH:/mypath/
topythoncode
but it did not help.
What am I doing wrong? *Thank you.
forgot to say that on the mac I can do import chap2, but when I try
and instantiate I get the error above.

It shouldn't work under Windows, either. You have to qualify the name
of the class with the name of the module, as in chap2.FooClass(). Or
you can type "from chap2 import FooClass" and then you'll be able to
simply say FooClass().- Hide quoted text -

- Show quoted text -
Thanks. That worked on mac. But it does work like I said in
Windows. Don't know why. Mr. Chun must also be using Windows because
that is the way he does it in his book.
Jun 27 '08 #4
On Tue, Apr 29, 2008 at 2:14 PM, jmDesktop <ne***********@gmail.comwrote:
Thanks. That worked on mac. But it does work like I said in
Windows. Don't know why. Mr. Chun must also be using Windows because
that is the way he does it in his book.
It shouldn't work that way on windows either. Can you tell us a
little more about what you mean when you say you "compile this" under
windows? Normally, python code doesn't need to be compiled, so I'm
wondering if you're doing something different from what we expect when
you say you compile it and then import it in the interpreter.

Are you by any chance writing code in IDLE, running it, then doing
things in the interpreter?

--
Jerry
Jun 27 '08 #5
On Apr 29, 2:37*pm, "Jerry Hill" <malaclyp...@gmail.comwrote:
On Tue, Apr 29, 2008 at 2:14 PM, jmDesktop <needin4mat...@gmail.comwrote:
*Thanks. *That worked on mac. *But it does work like I said in
*Windows. *Don't know why. *Mr. Chun must also be using Windows because
*that is the way he does it in his book.

It shouldn't work that way on windows either. *Can you tell us a
little more about what you mean when you say you "compile this" under
windows? *Normally, python code doesn't need to be compiled, so I'm
wondering if you're doing something different from what we expect when
you say you compile it and then import it in the interpreter.

Are you by any chance writing code in IDLE, running it, then doing
things in the interpreter?

*--
Jerry
On Windows I took the text file I created on mac with vi and opened it
in PythonWin. I ran it. It compiled. I run the import and call from
the python interpreter.
Jun 27 '08 #6
On Apr 29, 2:17 pm, jmDesktop <needin4mat...@gmail.comwrote:
On Apr 29, 2:37 pm, "Jerry Hill" <malaclyp...@gmail.comwrote:
On Tue, Apr 29, 2008 at 2:14 PM, jmDesktop <needin4mat...@gmail.comwrote:
Thanks. That worked on mac. But it does work like I said in
Windows. Don't know why. Mr. Chun must also be using Windows because
that is the way he does it in his book.
It shouldn't work that way on windows either. Can you tell us a
little more about what you mean when you say you "compile this" under
windows? Normally, python code doesn't need to be compiled, so I'm
wondering if you're doing something different from what we expect when
you say you compile it and then import it in the interpreter.
Are you by any chance writing code in IDLE, running it, then doing
things in the interpreter?
--
Jerry

On Windows I took the text file I created on mac with vi and opened it
in PythonWin. I ran it. It compiled. I run the import and call from
the python interpreter.
Well, Python compiles automatically any .py file that you import. Of
course this isn't machine code like the one from a C compiled
executable. It's Python's own bytecode. But normally you shouldn't
worry about that bytecode; actually, you shouldn't even be paying
attention to it. All that concerns you is that you created a module
and that you can import it. Leave the whole "compiling" concept to the
interpreter.
Jun 27 '08 #7
On Tue, Apr 29, 2008 at 3:17 PM, jmDesktop <ne***********@gmail.comwrote:
On Windows I took the text file I created on mac with vi and opened it
in PythonWin. I ran it. It compiled. I run the import and call from
the python interpreter.
You're not doing what you think you're doing. I'm not sure I know the
right way to explain it, though.

When you run your code in pythonwin, it's just like calling 'python -i
chap2.py' It runs the code in chap2.py, then gives you an interpreter
window to interact with your code. In this case, that means that
FooClass is visible with no import at all, because it was defined in
the scope of the currently running script, as opposed to being
imported.

You haven't said exactly how you're doing this on your mac, but I'm
guessing that you're opening a command line, starting up the python
interpreter, then going from there?

Can someone help me out? I'm running into a mental block on how to
explain the difference between doing this:
C:\Python25>python -i chap2.py
>>foo1=FooClass()
Created a class instance for John Doe
>>>
and doing this:
C:\Python25>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>import chap2
foo1=chap2.FooClass()
Created a class instance for John Doe
>>>
--
Jerry
Jun 27 '08 #8
On Apr 29, 3:47*pm, "Jerry Hill" <malaclyp...@gmail.comwrote:
When you run your code in pythonwin, it's just like calling 'python -i
chap2.py' *It runs the code in chap2.py, then gives you an interpreter
window to interact with your code. *In this case, that means that
FooClass is visible with no import at all, because it was defined in
the scope of the currently running script, as opposed to being
imported.

You haven't said exactly how you're doing this on your mac, but I'm
guessing that you're opening a command line, starting up the python
interpreter, then going from there?

Can someone help me out? *I'm running into a mental block on how to
explain the difference between doing this:
C:\Python25>python -i chap2.py>>foo1=FooClass()
jmDesktop,

With what Jerry stated,

You can see what is happening under PythonWin interactive window by
doing:
>>dir()
before and after running chap2.py and see that FooClass is defined
without import, which gives a clue that PythonWin is not running the
script independant of the interactive window.

Or try adding the following to the end of your chap2.py:
print "Hello World"
somevar = 12345
And run in PythonWin and see what happens to your interactive window
and if somevar is defined.

If you close and open PythonWin and use the interactive window without
having first run chap2.py, you will find it behaves the same as the
mac.

Ivan
Jun 27 '08 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by engsolnom | last post: by
1 post views Thread by barnesc | last post: by
38 posts views Thread by jrlen balane | last post: by
5 posts views Thread by max(01)* | last post: by
7 posts views Thread by Dustin MacDonald | last post: by
1 post views Thread by =?ISO-8859-1?Q?Tor_Erik_S=F8nvisen?= | last post: by
7 posts views Thread by bvdp | last post: by
13 posts views Thread by John Dann | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.