Skip to content
Advertisement

Cross-platform way to specify Python interpreter when running with execv

I am currently running a Python scripts both on Linux and Windows 7. The file is executed in an execv style with which I mean that the interpreter is defined in the beginning of the file in a command.

In Windows system, the interpreter specification is:

#!C:Python26python.exe

However in Linux this needs to be

#!/usr/bin/python

I would like to run this script in both systems without having to change this line again and again.

I have tried out the following:

#!C:Python26python.exe
#!/usr/bin/python

as well as:

#!C:Python26python.exe;/usr/bin/python

So: is there any way I could specify multiple interpreters?

Advertisement

Answer

#!/usr/bin/env python

That will call the env program to search your PATH for a Python executable.

If you need to ensure a specific version of Python you can do e.g.:

#!/usr/bin/env python3.11
Advertisement