yes. /etc/apache2/sites-available$ python Python 3.6.5 (default, May 3 2018, 10:08:28) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import datetime >>>
—Rajeev On Jun 13, 2018, at 10:52 PM, Graham Dumpleton <[email protected]> wrote: Odd. If you run python3.6 and enter in the interpreter: import datetime it works? Graham > On 14 Jun 2018, at 3:50 pm, 'Rajeev Jain' via modwsgi > <[email protected] <mailto:[email protected]>> wrote: > > > On Jun 13, 2018, at 10:42 PM, Graham Dumpleton <[email protected] > <mailto:[email protected]>> wrote: > > How did you install Python 3.6? > > followed instructions here: > https://askubuntu.com/questions/889535/how-to-install-pip-for-python-3-6-on-ubuntu-16-10 > > <https://askubuntu.com/questions/889535/how-to-install-pip-for-python-3-6-on-ubuntu-16-10> > > Let's suppose that you have a system running Ubuntu 16.04, 16.10, or 17.04, > and you want Python 3.6 to be the default Python. > > If you're using Ubuntu 16.04 LTS, you'll need to use a PPA: > > sudo add-apt-repository ppa:jonathonf/python-3.6 # (only for 16.04 LTS) > Then, run the following (this works out-of-the-box on 16.10 and 17.04): > > sudo apt update > sudo apt install python3.6 > sudo apt install python3.6-dev > sudo apt install python3.6-venv > wget https <https://bootstrap.pypa.io/get-pip.py>:// > <https://bootstrap.pypa.io/get-pip.py>bootstrap > <https://bootstrap.pypa.io/get-pip.py>. > <https://bootstrap.pypa.io/get-pip.py>pypa > <https://bootstrap.pypa.io/get-pip.py>. > <https://bootstrap.pypa.io/get-pip.py>io > <https://bootstrap.pypa.io/get-pip.py>/ > <https://bootstrap.pypa.io/get-pip.py>get > <https://bootstrap.pypa.io/get-pip.py>- > <https://bootstrap.pypa.io/get-pip.py>pip > <https://bootstrap.pypa.io/get-pip.py>. > <https://bootstrap.pypa.io/get-pip.py>py > <https://bootstrap.pypa.io/get-pip.py> > sudo python3.6 get-pip.py > sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3 > sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3 > > # Do this only if you want python3 to be the default Python > # instead of python2 (may be dangerous, esp. before 2020): > # sudo ln -s /usr/bin/python3.6 /usr/local/bin/python > When you have completed all of the above, each of the following shell > commands should indicate Python 3.6.1 (or a more recent version of Python > 3.6): > > python --version # (this will reflect your choice, see above) > python3 --version > $(head -1 `which pip` | tail -c +3) --version > $(head -1 `which pip3` | tail -c +3) --version > > > This is running on a local Ubuntu 16.04 computer. > > python > Python 3.6.5 (default, May 3 2018, 10:08:28) > [GCC 5.4.0 20160609] on linux > Type "help", "copyright", "credits" or "license" for more information. > >>> import math > > > > > > > > > > > > > > > > > > Unless that is a very up to date Ubuntu version, which I would doubt AWS > would be using if this is one of their images, you would need to install it > from source code. Installing Python from source code yourself can be a bit > tricky on Linux as the default configure options aren't what you need. Also > not a good idea to install from Python source code into system directories as > it is then hard to extract it out if you need to remove it. > >> On 14 Jun 2018, at 3:33 pm, Rajeev Jain <[email protected] >> <mailto:[email protected]>> wrote: >> >> Latest update: >> >> No virtual environment. Python3.6 is now installed into the system folder: >> >> python location: >> /etc/apache2/sites-available$ python --version >> Python 3.6.5 >> >> python >> Python 3.6.5 (default, May 3 2018, 10:08:28) >> [GCC 5.4.0 20160609] on linux >> Type "help", "copyright", "credits" or "license" for more information. >> >>> import sys >> >>> print(sys.prefix) >> /usr >> >> Flask location: >> >>> import flask >> >>> print(flask.__file__) >> /usr/local/lib/python3.6/dist-packages/flask/__init__.py >> >> mod_wsgi-express module-config >> LoadModule wsgi_module >> "/usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so" >> WSGIPythonHome "/usr" >> >> cat wsgi.load >> LoadModule wsgi_module >> /usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so >> >> >> /etc/apache2/sites-available$ cat FlaskApp.conf >> <VirtualHost *:83> >> >> ServerName flaskapp.com <http://flaskapp.com/> >> >> WSGIDaemonProcess flaskapp.com <http://flaskapp.com/> python-home=/usr >> python-path=/var/www/FlaskApp >> >> WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi >> process-group=flaskapp.com <http://flaskapp.com/> application-group=%{GLOBAL} >> >> <Directory /var/www/FlaskApp/> >> <Files flaskapp.wsgi> >> Require all granted >> </Files> >> </Directory> >> >> </VirtualHost> >> >> /etc/apache2/mods-available$ cat wsgi.conf >> <IfModule mod_wsgi.c> >> >> WSGIRestrictEmbedded On >> >> </IfModule> >> >> Testing: >> curl -sH 'Host: flaskapp.com <http://flaskapp.com/>' localhost:83|grep title >> <title>500 Internal Server Error</title> >> >> tail -l /var/log/apache2/error.log >> [Wed Jun 13 22:18:08.678744 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] from werkzeug.exceptions import abort >> [Wed Jun 13 22:18:08.678749 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] File >> "/usr/local/lib/python3.6/dist-packages/werkzeug/__init__.py", line 151, in >> <module> >> [Wed Jun 13 22:18:08.678752 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] __import__('werkzeug.exceptions') >> [Wed Jun 13 22:18:08.678756 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] File >> "/usr/local/lib/python3.6/dist-packages/werkzeug/exceptions.py", line 67, in >> <module> >> [Wed Jun 13 22:18:08.678759 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] from werkzeug._internal import _get_environ >> [Wed Jun 13 22:18:08.678764 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] File >> "/usr/local/lib/python3.6/dist-packages/werkzeug/_internal.py", line 15, in >> <module> >> [Wed Jun 13 22:18:08.678766 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] from datetime import datetime, date >> [Wed Jun 13 22:18:08.678771 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] File "/usr/lib/python3.6/datetime.py", line 8, in <module> >> [Wed Jun 13 22:18:08.678773 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] import math as _math >> [Wed Jun 13 22:18:08.678786 2018] [wsgi:error] [pid 3095] [remote >> 127.0.0.1:57590] ModuleNotFoundError: No module named 'math' >> >> Running FlaskApp on its own: >> /var/www/FlaskApp/FlaskApp$ python __init__.py >> * Serving Flask app "__init__" (lazy loading) >> * Environment: production >> WARNING: Do not use the development server in a production environment. >> Use a production WSGI server instead. >> * Debug mode: off >> * Running on http://127.0.0.1:5000/ <http://127.0.0.1:5000/> (Press CTRL+C >> to quit) >> 127.0.0.1 - - [13/Jun/2018 22:25:23] "GET / HTTP/1.1" 200 - >> 127.0.0.1 - - [13/Jun/2018 22:25:23] "GET /favicon.ico HTTP/1.1" 404 - >> >> curl -sH 'Host: flaskapp.com <http://flaskapp.com/>' localhost:5000 >> Hello, this is running from flasK! >> >> As you can see the FlaskApp is running fine. >> Python and all modules are now installed in system locations and they are >> running fine. >> Apache2 is running fine. I have 2 other virtualhosts running serving >> php/html pages >> >> Still WSGI is still not setup correctly. >> >> I'm shocked at the lack of decent documentation to get WCGI enabled on a >> Apache2 server. What am I missing?? > > There is a whole web site on it at: > > http://modwsgi.readthedocs.io/en/develop/ > <http://modwsgi.readthedocs.io/en/develop/> > > It just doesn't cover the specifics of particular ways that Linux distros > need things done because they depart from standard conventions for Apache and > do things their own way. Lot of work to document how every different Linux > distro does it. > >> Don't you have some basic test code or files one can run to verify the WSGI >> is setup correctly? > > Usually if you can get the WSGI hello world program working you are good. > > * > http://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html > > <http://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html> > > There are various checks you can run in: > > * > http://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html > > <http://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html> > > This more for when debugging issues when things don't work. > > Graham > >> >> Please advise. >> --Rajeev >> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <mailto:[email protected]>. >> To post to this group, send email to [email protected] >> <mailto:[email protected]>. >> Visit this group at https://groups.google.com/group/modwsgi >> <https://groups.google.com/group/modwsgi>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/modwsgi > <https://groups.google.com/group/modwsgi>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/modwsgi > <https://groups.google.com/group/modwsgi>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>. Visit this group at https://groups.google.com/group/modwsgi <https://groups.google.com/group/modwsgi>. For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
