HI, Did yu have any luck? I'm having the same exact issue. best, -R On Thursday, May 11, 2017 at 1:34:33 PM UTC-7, Brian wrote: > > Graham, > > Thank you so much. I plan to use Anaconda for this project and so maybe > using another tool is best? I don't want to give up on this direction if > you think it will be fruitful, but maybe nginx + gunicorn + flask in a > conda installed env is better? I'm even considering just deploying to > Heroku. > > Thanks again and if you have any thoughts, I'm certainly game to hear what > you think. > > Best, > -Brian > On Tuesday, May 9, 2017 at 7:52:04 PM UTC-6, Graham Dumpleton wrote: >> >> If you want to use Anaconda Python with mod_wsgi, the steps you need to >> follow are as follows. >> >> 1. Uninstall any system wide mod_wsgi package as you do not need it and >> it can interfere. >> >> sudo apt-get uninstall libapache2-mod-wsgi >> >> 2. Ensure 'dev' packages for Python and Apache installed. >> >> 3. You are better off using virtual environment created using virtualenv >> rather than using a conda env. I am not sure what set up steps need to be >> if using conda env right now. With virtual environment created using >> virtualenv, activate it. >> >> 4. Install mod_wsgi using pip. >> >> 5. Run: >> >> mod_wsgi-express module-config >> >> and take the output of this and put it in a 'wsgi.load' file in the >> 'mods-available' directive of your Apache installation. >> >> 6. Enable the Apache module. Either run: >> >> sudo a2enmod wsgi >> >> or symlink wsgi.load in to the 'mods-enabled' directory and restart >> Apache. >> >> Verify that Apache starts up okay. >> >> 7. Manually configure Apache for mod_wsgi with a WSGI hello world >> program, restart Apache and verify that it works. >> >> 8. Add configuration for mod_wsgi to Apache sites file for your Flask >> application. Use the recommended steps for setting up a Python virtual >> environment as documented in: >> >> >> http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html >> >> Don't use 'python-path' with 'site-packages'. Use 'python-home' with the >> root of the Python virtual environment instead. >> >> See if it works. >> >> Would like to see you use virtualenv before we sort out what needs to be >> done for conda env. I can't remember right now how compatible conda env >> directories are with normal Python virtual environments. >> >> Graham >> >> On 9 May 2017, at 6:55 AM, Graham Dumpleton <[email protected]> >> wrote: >> >> Just read again. You are using system package for mod_wsgi, not that >> installed for Anaconda. You should not be using both installs. Will send >> back instructions later when have time. >> >> Graham >> >> On 9 May 2017, at 6:47 AM, Brian <[email protected]> wrote: >> >> Thanks Graham. >> >> I did edit the FlaskApp.config file: >> >> <VirtualHost *:80> >> ServerName <public ip>.us-west-2.compute.amazonaws.com >> ServerAdmin ubuntu@ec2-<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> >> *WSGIDaemonProcess FlaskApp >> python-path=/home/ubuntu/anaconda3/envs/test1.0/lib/python3.6/site-packages* >> ErrorLog ${APACHE_LOG_DIR}/error.log >> LogLevel warn >> CustomLog ${APACHE_LOG_DIR}/access.log combined >> </VirtualHost> >> >> >> And then applied following new step in the process: >> >> ## 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 >> >> ## Install and register the mod_wsgi module with Apache >> <-------------------------- >> sudo `which mod_wsgi-express` install-module >> >> ## get git >> sudo apt-get install git >> >> ## create apache config >> 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 >> >> >> The same error occurs in the log: >> >> Traceback (most recent call last): >> File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in <module> >> from FlaskApp import app as application >> File "/var/www/FlaskApp/FlaskApp/__init__.py", line 1, in <module> >> from flask import Flask >> ImportError: No module named flask >> >> >> Thoughts? >> >> Best, >> -Brian >> On Monday, May 8, 2017 at 2:21:12 PM UTC-6, Graham Dumpleton wrote: >>> >>> Did you read: >>> >>> >>> http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html >>> >>> as I linked to. >>> >>> There is no evidence that you have added anything for a Python virtual >>> environment if you are using one. >>> >>> Graham >>> >>> On 9 May 2017, at 4:25 AM, Brian <[email protected]> wrote: >>> >>> 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. >>> >>> >>> >> -- >> 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.
