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]> 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].
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.