The conda environment must not be set correctly because it can't find flask:

[Mon May 08 16:39:11.002873 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413] Traceback (most recent call last):

 

[Mon May 08 16:39:11.002923 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413]   File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in 
<module> 

[Mon May 08 16:39:11.002989 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413]     from FlaskApp import app as application 

[Mon May 08 16:39:11.003012 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413]   File "/var/www/FlaskApp/FlaskApp/__init__.py", line 1
, in <module> 

[Mon May 08 16:39:11.003044 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413]     from flask import Flask 

[Mon May 08 16:39:11.003081 2017] [:error] [pid 31696:tid 139896253531904] 
[client 
208.184.3.194:36413] ImportError: No module named flask



On Monday, May 8, 2017 at 11:45:31 AM UTC-6, Vanessa Marques wrote:
>
> Brian, check out /var/log/apache2/error.log to see the errors and let us 
> know what is in there. 
>
> I'm having the exact same challenge as you (trying to configure flask + 
> apache + anaconda + mod_wsgi on an ubuntu EC2 instance). 
>
> On Monday, May 8, 2017 at 1:59:16 PM UTC-3, Brian wrote:
>>
>> Thank you Graham. 
>>
>> Any recs on testing and/or debugging a 500 internal server error when I 
>> try to hit the site? I'm assuming that it's in the configuration so I'm 
>> going to add full details of the process and config files below. 
>>
>> All commands ran:
>>
>> ## build conda environment
>>
>> conda create --name test1.0 python==3.6.1 pandas jupyter requests flask
>>
>>
>> ## activate conda environment 
>>
>> source activate test1.0
>>
>>  
>>
>> ## get apache2
>>
>> sudo apt-get install apache2
>>
>> sudo apt-get install apache2-dev
>>
>>
>> ## get mod_wsgi
>>
>> #sudo apt-get install libapache2-mod-wsgi
>>
>> pip install mod_wsgi
>>
>>
>> ## force load Anaconda's shared library
>>
>> mod_wsgi-express module-config
>>
>>
>> ## enable mod_wsgi
>>
>> sudo a2enmod wsgi 
>>
>>
>> ## get git 
>>
>> sudo apt-get install git
>>
>>
>> ## create config for apache to know about wsgi and flask app
>>
>> touch /etc/apache2/sites-available/FlaskApp.conf
>>
>>
>> ## disable default config
>>
>> sudo a2dissite 000-default
>>
>>
>> ## provide new config
>>
>> sudo a2ensite FlaskApp.conf
>>
>>
>> ## start/restart apache
>>
>> sudo service apache2 restart
>>
>> Contents of FlaskApp.conf:
>>
>> <VirtualHost *:80>
>>
>>                 ServerName <IPv4 PUBLIC IP>
>>
>>                 ServerAdmin ubuntu@<IPv4 PUBLIC IP>.
>> us-west-2.compute.amazonaws.com
>>
>>                 WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
>>
>>                 <Directory /var/www/FlaskApp/FlaskApp/>
>>
>>                         Order allow,deny
>>
>>                         Allow from all
>>
>>                 </Directory>
>>
>>                 Alias /static /var/www/FlaskApp/FlaskApp/static
>>
>>                 <Directory /var/www/FlaskApp/FlaskApp/static/>
>>
>>                         Order allow,deny
>>
>>                         Allow from all
>>
>>                 </Directory>
>>
>>                 ErrorLog ${APACHE_LOG_DIR}/error.log
>>
>>                 LogLevel warn
>>
>>                 CustomLog ${APACHE_LOG_DIR}/access.log combined
>>
>> </VirtualHost>
>>
>> Location of flask app and .wsgi file*.*
>>
>> (test1.0) ubuntu:/var/www$ tree
>>
>> *.*
>>
>> ├── *FlaskApp*
>>
>>    ├── *FlaskApp*
>>
>>    │   ├── __init__.py
>>
>>    │   ├── *static*
>>
>>    │   └── *templates*
>>
>>    └── flaskapp.wsgi
>>
>> Contents of flaskapp.wsgi:
>>
>> #!/usr/bin/python
>>
>> import sys
>>
>> import logging
>>
>> logging.basicConfig(stream=sys.stderr)
>>
>> sys.path.insert(0,"/var/www/FlaskApp/")
>>
>>
>> from FlaskApp import app as application
>>
>> application.secret_key = '<secret>'
>>
>> Contents of __init__.py:
>>
>> from flask import Flask
>>
>> app = Flask(__name__)
>>
>> @app.route("/")
>>
>> def hello():
>>
>>     return "Hello World (flask via conda env)!"
>>
>> if __name__ == "__main__":
>>
>>     app.run()
>>
>> When visiting the site, I get a 500 internal server error. I likely 
>> messed up something with the config. Any help is greatly appreciated.
>>
>> Best,
>> -Brian
>>
>> On Sunday, May 7, 2017 at 6:32:18 PM UTC-6, Graham Dumpleton wrote:
>>>
>>> In the first instance you should ensure things work with a WSGI hello 
>>> world, no Flask framework. This ensures setup with Anaconda Python is okay, 
>>> which sometimes doesn't always work because of stupid things Anaconda 
>>> Python does which breaks the ability to use it in embedded systems.
>>>
>>> As to deploying Flask, the Flask documentation has details:
>>>
>>> * http://flask.pocoo.org/docs/0.12/deploying/mod_wsgi/
>>>
>>> Also ensure you read:
>>>
>>> * 
>>> http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html
>>>
>>> so you are setting up any Python virtual environment correctly as guides 
>>> for frameworks often don't suggest the preferred method, or simply don't 
>>> address it.
>>>
>>> Graham
>>>
>>> On 7 May 2017, at 8:00 AM, Brian Lehman <[email protected]> wrote:
>>>
>>> Thanks Graham. So everything is installed. Being brand new to this 
>>> world, I'm looking for a tutorial to (and please forgive me as I'm likely 
>>> using the wrong terminology) see how to tell Apache to use mod_wsgi to run 
>>> my flask app. I'm guessing that I need to change some config files in 
>>> Apache to use my conda environment and then write some .wsgi file? However, 
>>> I'm seeing quite a few different threads on this subject. Any advice is 
>>> greatly appreciated.   
>>>
>>> ## get apache2
>>> sudo apt-get install apache2
>>> sudo apt-get install apache2-dev
>>>
>>> ## get mod_wsgi
>>> pip install mod_wsgi
>>>
>>> #force load Anaconda's shared library
>>> mod_wsgi-express module-config
>>>
>>> ## start/restart apache
>>> sudo service apache2 restart 
>>>
>>> On Thursday, May 4, 2017 at 4:22:08 PM UTC-6, Graham Dumpleton wrote:
>>>>
>>>> As per instructions in:
>>>>
>>>>     https://pypi.python.org/pypi/mod_wsgi
>>>>
>>>> You need to ensure you have the 'dev' packages for Apache installed.
>>>>
>>>> If you are running Debian or Ubuntu Linux with Apache 2.4 system 
>>>> packages, regardless of which Apache MPM is being used, you would need 
>>>> both:
>>>>
>>>>     apache2
>>>>     apache2-dev
>>>>
>>>> Note that if using Anaconda Python, after having installed mod_wsgi 
>>>> with pip, ensure you run:
>>>>
>>>>     mod_wsgi-express module-config
>>>>
>>>> to show the configuration you need to include in the system Apache if 
>>>> you intend manually configuring it for mod_wsgi, instead of using 
>>>> 'mod_wsgi-express start-server'.
>>>>
>>>> This is necessary as Anaconda Python can require extra configuration 
>>>> directives to force load its shared library. That command should output 
>>>> the 
>>>> appropriate lines, although just check that the generated line for 
>>>> LoadFile 
>>>> directive actually points at a valid path. Seen one report where for 
>>>> Anaconda Python the path it generated was wrong and it had to be changed.
>>>>
>>>> Graham
>>>>
>>>> On 5 May 2017, at 2:54 AM, Brian Lehman <[email protected]> wrote:
>>>>
>>>> Good day. When I try to pip install mod_wsgi inside of an anaconda env 
>>>> called test1.0 on an aws ec2 instance w/ ubuntu, I get the folowing error. 
>>>> Any suggestions?
>>>>
>>>> (test1.0) ubuntu$ python --version 
>>>>
>>>> Python 3.6.1 :: Continuum Analytics, Inc.
>>>>
>>>> (test1.0) ubuntu$ 
>>>>
>>>> (test1.0) ubuntu$ 
>>>>
>>>> (test1.0) ubuntu$ pip install mod_wsgi
>>>>
>>>> Collecting mod_wsgi
>>>>
>>>>   Using cached mod_wsgi-4.5.15.tar.gz
>>>>
>>>>     Complete output from command python setup.py egg_info:
>>>>
>>>>     Traceback (most recent call last):
>>>>
>>>>       File "<string>", line 1, in <module>
>>>>
>>>>       File "/tmp/pip-build-80walwu3/mod-wsgi/setup.py", line 164, in 
>>>> <module>
>>>>
>>>>         'missing Apache httpd server packages.' % APXS)
>>>>
>>>>     RuntimeError: The 'apxs' command appears not to be installed or is 
>>>> not executable. Please check the list of prerequisites in the 
>>>> documentation 
>>>> for this package and install any missing Apache httpd server packages.
>>>>     
>>>>
>>>>     ----------------------------------------
>>>>
>>>> Command "python setup.py egg_info" failed with error code 1 in 
>>>> /tmp/pip-build-80walwu3/mod-wsgi/
>>>>
>>>> -- 
>>>> 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.
>>>>
>>>>
>>>>
>>> -- 
>>> 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.
>>>
>>>
>>>

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

Reply via email to