Which of these are useful?

image

Required for what?

None of them are required, that’s why they are options. The only thing that’s not optional is installing Python, because presumably that’s what you’re trying to do.

Edit: ah, now the title says “which are these are useful?” which is a different question entirely. :wink:

Whether they are useful depends on what you will be doing. The first two options are checked because most people find them useful. I believe the last two options are mostly useful for people developing CPython itself. Whether you want to add Python to your environment variables depends on what you need it for. And precompiling the standard library is a small convenience that you probably don’t need to bother with.

1 Like

I think precompiling stdlib is for an all user install into the default location (c:/program files) where users cannot write files. Notice not checked for user-only install.

3 Likes

Right. Installing “for all users”, following the Windows paradigm, just means that it’s installed into Program Files or similar (older versions would install directly at the drive root), so everyone can run the program. But writing new files in those folders requires admin privileges, and that will happen when Python creates .pyc from .py. You can use an environment variable or command-line flag to prevent Python from trying to write these files (instead creating the bytecode from scratch each time), but this is a serious obstacle if you actually want “all users” to be able to run Python code (and use the standard library).

If you choose this for a user install, it just means all that work happens up front - Python won’t wait until the first time you import something before creating the .pyc file.

2 Likes