osx - "python myscript" ignores "#!/usr/bin/env pythonX" where pythonX doesn't exist -


why doesn't test.py throw error env: python3: no such file or directory when python 3 not installed?

my system (mac os x) has python 2.7 installed, not python 3:

$ /usr/bin/env python -v python 2.7.12 $ /usr/bin/env python3 -v env: python3: no such file or directory 

file test.py:

#!/usr/bin/env python3 import sys print sys.executable 

executing test.py:

$ python test.py /usr/local/opt/python/bin/python2.7 

i thought since python 3 not exist on system, having shebang line #!/usr/bin/env python3 throw error , terminate script. env selected python 2.7 interpreter.

the shebang interpreted os when tries execute script. whey type python test.py, os executes python , python executes script (and python found based on current path) opposed being processed os.

if make script executable (chmod +x test.py) , try execute directly (e.g. ./test.py), os responsible running script @ shebang figure out program responsible run script. in case, /usr/bin/env python3 , try use that. since python3 isn't there (or not findable on path) you'll see error.


Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -