我的服务器中有两个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 配置。这涉及更新三个文件:
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
wsgi.conf
打开文件/etc/apache2/mods-available/wsgi.conf 并添加以下内容
<IfModule mod_wsgi.c> WSGIPythonHome /opt/anaconda2 </IfModule>
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"的帖子。