difference between IDLE and command line

J

Jim Hendricks

New to Python, and just had something strange happen.

I've been running my new code in IDLE running in windows. My IDLE
version shows as 1.2.1, Python version displaying in IDLE is 2.5.1.

I have been editing my code in UltraEdit then testing in IDLE by
choosing open, then F5. I didn't see an easy way to refresh in IDLE, so
each edit I've been closing the file (not IDLE itself), then opening
again. Since IDLE does not keep track of what directory I last opened
from, this gets tedious, so I decided to run my code from the command line.

Here's where it got interesting for me. From the command line, I'm in
the directory containing my source, I execute via "python mycode.py", I
receive an error in my code. Specifically, it's erroring because I have
a copyright character in a string that I am outputting via the
file.write method. The error has to do with no encoding declared.

What surprised me is that this code runs with no problems in IDLE.

Should I expect different execution behavior between IDLE and a command
prompt?

Oh, and executing python all by itself in the command prompt shows the
same version as what is displayed in IDLE.
 
G

Gabriel Genellina

En Fri, 02 Nov 2007 13:38:07 -0300, Jim Hendricks
New to Python, and just had something strange happen.

I've been running my new code in IDLE running in windows. My IDLE
version shows as 1.2.1, Python version displaying in IDLE is 2.5.1.

I have been editing my code in UltraEdit then testing in IDLE by
choosing open, then F5. I didn't see an easy way to refresh in IDLE, so
each edit I've been closing the file (not IDLE itself), then opening
again. Since IDLE does not keep track of what directory I last opened
from, this gets tedious, so I decided to run my code from the command
line.

Here's where it got interesting for me. From the command line, I'm in
the directory containing my source, I execute via "python mycode.py", I
receive an error in my code. Specifically, it's erroring because I have
a copyright character in a string that I am outputting via the
file.write method. The error has to do with no encoding declared.

What surprised me is that this code runs with no problems in IDLE.

Since version 2.4, Python *requires* an explicit encoding declaration at
the start of the file, when it contains a string literal outside the ASCII
range (0 to 127). See
<http://www.python.org/doc/2.3/whatsnew/section-encodings.html>
That IDLE doesn't require an encoding (and assumes something, perhaps
latin-1, I don't know) is an unfortunate bug (already reported, I think).
 
T

Tal Einat

Jim said:
I have been editing my code in UltraEdit then testing in IDLE by
choosing open, then F5. I didn't see an easy way to refresh in IDLE, so
each edit I've been closing the file (not IDLE itself), then opening
again. Since IDLE does not keep track of what directory I last opened
from, this gets tedious, so I decided to run my code from the command line.

Tip: IDLE has a recent files list, under the File menu. Use Alt-f Alt-
r to access it quickly.

Tip #2: You can run a script in IDLE from the command line: IDLE -r
<script file>. This will open an IDLE shell, run the script in it, and
afterwards become interactive. Very useful for debugging etc.

- Tal
reduce(lambda m,x:[m+s[-1] for i,s in enumerate(sorted(m))],
[[chr(154-ord(c)) for c in '.&-&,l.Z95193+179-']]*18)[3]
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,066
Latest member
VytoKetoReviews

Latest Threads

Top