Re: Re: Complete frustration





norseman wrote:
<div class="moz-text-flowed" style="font-family: -moz-fixed">hellcats wrote:
I have Python2.5 installed on Windows XP. Whenever I double click on a
something.pyw file, IDLE launches and opens something.pyw in the
editor. I would prefer to actually *RUN* the program, not edit it. If
I want to edit it then I'll choose the "Edit with IDLE" context menu.
So I then have to press F5 to get the program to execute. Now I have
my program's windows along with two IDLE windows cluttering my screen
and task bar. WHAT IS GOING ON? I've tried changing the file
association to python.exe, and that works, but just ONCE (even if I
choose "always use the slected program to launch this kind of file").
IDLE may be great and all, but I fricken' don't want to see it every
time I just want to run a python program!!!!!
--
http://mail.python.org/mailman/listinfo/python-list

------------------------
I agree completely. Check the Python-List archives. Look for a file that is dated July 8, 2008 (07/08/2008) that was sent by norseman.

It works for me.


Steve

</div>
For a Unix person, you sure act like you know Windows. But changing the PATH environment variable affects a command typed in the shell, but does not affect what happens when you either type the name of a python script directly, or when you double-click on such a file. That's controlled by file associations. (PATH isn't the answer in Unix either, most shells use the shebang at the beginning of the script.)

File associations can be controlled in a number of ways. OPEN-WITH is one way. REGEDIT is another. In fact, any program can modify these settings, including your own scripts. Something is changing things back on you. But once you're having the problem of things reverting "automatically," a command line tool is sometimes the easiest.

Two built-in commands (they're inside the cmd.exe shell) can help. They're ASSOC and FTYPE

Since the extension you're bothered by is .pyw, try the following:

C:> assoc .pyw
..pyw=Python.NoConFile

C:> ftype Python.NoConFile
Python.NoConFile="C:\ProgFiles\Python26\pythonw.exe" "%1" %*


Type them once and copy/paste results somewhere.

Then fix the problem, and look again. Check that they work by double-clicking a xxx.pyw file in Explorer.

Now, run other things, especially IDLE, and recheck these two commands to see if something changed. If it did, then blame whatever program you just ran.

My guess is that it changed when some Python installation was done. And some programs have a habit of continually resetting their own associations. Sometimes this is configurable, sometimes you just have to stop using the brain-dead program.

Notes: your path is unlikely to be the same as mine, so replace the C:\ProgFiles... string as appropriate to your preferred Python version location. Note you want Pythonw.exe, or you'll wind up with an extra shell window. You can do the same thing for the .py extension, which should wind up running python.exe. And you can make a simple two-line batch file to set these (assoc/ftype). If you had several such batch files you could change the default python very easily. Unlike environment variables, these associations are global, across all users, across all applications. So changes made in one shell affect any other shells, as well as the Explorer windows.

Final note: once you've got these right, you can run a script in the obvious way (like Unix).
myprogram.py parm1 parm2
will actually run python.exe myprogram.py parm1 parm2

And if you add a .PY and .PYW to PATHEXT environment variable, you can just run
myprogram parm1 parm2
without any extension on the script name. This should normally be done in the Control Panel->Environment vars so it'll work in multiple DOS boxes, same as all environment variable changes.

.



Relevant Pages

  • Re: bash vs. python scripts - which one is better?
    ... Quick, take your one liner, have it traverse an entire directory tree ... For me I just need to change my small script into a function, ... That is where shell falls down. ... alternatives like Python, Perl or Ruby laying around to be used. ...
    (Debian-User)
  • Suggestions on writing a sh <--> python Howto/Tutorial
    ... I've been tinkering around learning traditional Unix shell programming ... and python at the same time. ... I first wrote a shell CGI script to read ...
    (comp.lang.python)
  • Re: Running Scripts vs Interactive mode
    ... I too have been learning Python on Windows in recent months. ... found using IDLE more than adequate for my purposes. ... Python shell and runs the script. ... Python shell makes for a superior command line for Python, ...
    (comp.lang.python)
  • Re: programmatically manipulation environment variables of the calling shell
    ... > shell variables of the calling shell. ... > In bash this is done with "export", can I do this with python? ... > all possible because python is actually a sub process of bash). ... Your python script must write the wanted ...
    (comp.lang.python)
  • Re: [ in /usr/bin Question
    ... As I don't use python, I have no direct experience here. ... It is also 'easier' than the shell, assuming you put the script in a file. ... Which means that you could also, if you *really* wanted/needed to, write a short script with proper indentation, looping, etc. ... Or, as Ron Johnson suggested, use a 'pseudo file' (in UNIX shell language, these are called 'here documents, I suppose because the standard input is redirected from 'here'). ...
    (Debian-User)