Environment:
- Mac OS X 10.8.5
- Apache2 (version that came with the OS)
- Python2 (version that came with the OS)
- Python3 (installed via Homebrew)
This code returns "testing" in the web browser:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from __future__ import print_function, division
print("Content-Type: text/html") # HTML is following.
print() # Blank line, end of headers.
print("testing")
But this code returns "Internal Server Error" in the web browser (using python3 this time):
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
print("Content-Type: text/html") # HTML is following.
print() # Blank line, end of headers.
print("testing")
...and in the Apache2 error log:
env: python3: No such file or directory
Premature end of script headers: test_cgi.py
In echo $PATH:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Looking deeper, ls -al /usr/bin/python*:
/usr/bin/python
/usr/bin/python-config
/usr/bin/python2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
/usr/bin/python2.5-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config
/usr/bin/python2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
/usr/bin/python2.6-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6-config
/usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
/usr/bin/python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
/usr/bin/pythonw
/usr/bin/pythonw2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw2.5
/usr/bin/pythonw2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/pythonw2.6
/usr/bin/pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
And in ls -al /usr/local/bin/python*:
/usr/local/bin/python3 -> ../Cellar/python3/3.3.3/bin/python3
/usr/local/bin/python3.3 -> ../Cellar/python3/3.3.3/bin/python3.3
/usr/local/bin/python3.3-config -> ../Cellar/python3/3.3.3/bin/python3.3-config
/usr/local/bin/pythonw3.3 -> ../Cellar/python3/3.3.3/bin/pythonw3.3
Questions:
- Since the first item in my PATH is /usr/local/bin, why can't Apache find Python3 ?
- How can I tell Apache to use Python3 ?
Thank you for your help :)
1 Answer 1
I have the exact same problem; I cannot figure out how to get apache to recognize python3. Furthermore, if you specify the interpreter manually:
#!/usr/bin/python
Works, however:
#!/usr/local/bin/python3
Complains about a "malformed header from script" in the apache error log... I have no idea why this is an issue as it should just be running an arbitrary interpreter.
EDIT
Okay, so my problem was actually just me not outputting header information. Your issue is that no python3 environment variable has been set. Try changing the first line to:
#!/usr/local/bin/python3
1 Comment
/usr/bin/env python3 but then hit the same homebrew python versioning thing issue. this isn't the ultimate solution i believe ...Explore related questions
See similar questions with these tags.