pythonexecv

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:\Python26\python.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:\Python26\python.exe
#!/usr/bin/python

as well as:

#!C:\Python26\python.exe;/usr/bin/python

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


Solution

  • #!/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