Two Questions about Python on Windows

Ian Kelly ian.g.kelly at gmail.com
Thu Apr 3 13:54:04 EDT 2014


On Apr 3, 2014 11:12 AM, "Walter Hurry" <walterhurry at gmail.com> wrote:
>
> Normally my Python development is done on FreeBSD and Linux. I know that
on *ix I simply have to make foo.py executable (the shebang line is
present, of course) to make it runnable.
>
> For my son's school assignment, I have to help him with Python for
Windows.
>
> As I understand it, on Windows a .py file is not executable, so I need to
run 'python foo py', or use a .pyw file.
>
> Question 1: Do I make a .pyw file simply by copying or renaming foo.py to
foo.pyw?

Yes. The only distinction between .py and .pyw is that the Python installer
associates the former with Python.exe and the latter with Pythonw.exe.
Pythonw runs the script without creating a console window for stdin/stdout.

> Secondly, on *ix, if there's an up-to-date .pyc in the right place and I
run foo.py, Python will automagically use foo.pyc.

I don't believe this is exactly correct. Python will only use a .pyc
automatically for imported modules. For a file specified on the command
line, Python won't try to second-guess the user as to which file they
want.  The file could have a .php extension, and Python will happily run it
if the contents are valid Python code.

> Question 2: Does it work the same way on Windows, and does this apply
both to foo.py and foo.pyw?

Yes.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20140403/1f550cc8/attachment.html>


More information about the Python-list mailing list