如何使用 Anaconda Python 版本运行 Flask + Apache 应用程序?



我的服务器中有两个Python版本:Python默认版本,已经存在于Ubuntu Server 16.04和Anaconda Python中。 当我使用 Apache 运行 Flask 应用程序时,因为它在用户 www-data 中运行,应用程序默认以 Python 运行,但我必须在 Anaconda 安装中运行。 如何配置使用Anaconda Python版本以及如何在此版本中安装新模块? Anaconda 安装的路径是/home/wandre/anaconda2

这是我让Apache在Anaconda环境中运行python模块以便Flask应用程序可以运行的一种方法。

首先是安装。使用命令安装 Apachesudo apt-get install apache2 apache2-bin apache2-dev。然后,将 Anaconda 安装在目录/opt 下作为 sudo。在/opt/anaconda2 上安装 Anaconda 后,按如下方式安装 conda 软件包:

sudo su  # Login as superuser
export PATH=/opt/anaconda2/bin:$PATH # Add conda to your path
conda install -c anaconda flask
pip install mod_wsgi 
mod_wsgi-express install-module # the outputs to this is used for Apache configuration in the next step

现在你需要更新 Apache 配置。这涉及更新三个文件:

  1. wsgi.load

    打开文件/etc/apache2/mods-available/wsgi.load 并添加以下内容(这是mod_wsgi-express install-module的输出,所以你的输出可能会有所不同(

    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi-py27.so 
    

    如果LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so最初包含在此文件中,请将其注释掉。否则(至少从我检查的内容来看(,apache服务器将运行默认的python而不是Anaconda中的python。接下来,启用 wsgi mod:

    sudo a2enmod wsgi 
    
  2. wsgi.conf

    打开文件/etc/apache2/mods-available/wsgi.conf 并添加以下内容

    <IfModule mod_wsgi.c>
    WSGIPythonHome /opt/anaconda2
    </IfModule>
    
  3. 000-default.conf(您的文件名可能不同(

    打开文件/etc/apache2/sites-available/000-default.conf 并添加以下内容

    WSGIDaemonProcess flaskapp python-home=/opt/anaconda2 python-path=/var/www/flask
    WSGIScriptAlias / /var/www/flask/flaskapp.wsgi
    <Directory /var/www/flask>
    WSGIProcessGroup flaskapp
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
    </Directory>
    

一切就绪。

请注意,我找不到设置"Anaconda + Flask + Apache"的教程,所以我参考了一篇关于"Anaconda + Django + Apache"的帖子。

最新更新