Запуск Anaconda python не глобальный питон, который поставляется с CentOS 7, я установил и протестировал Flask локально, и он отлично работает.Apache + Flask не распознает файл wsgi
[[email protected] FlaskApp]$ python __init__.py
[[email protected] FlaskApp]$ curl localhost:5000
Hello, I love Flask!
Когда я пытаюсь запустить его под apache, следующим образом, я получаю ошибку в конце. Я думаю, проблема заключается в том, что apache пытается запустить глобальный питон, а не anaconda python, где я установил Flask. Если true, я не хочу связываться с путём, который система использует для глобального python, поскольку это может вызвать проблемы. Не знаю, как сказать системе в этом случае использовать Anaconda питона:
[[email protected] FlaskApp]$ which python
~/anaconda2/bin/python
[[email protected] FlaskApp]$
Мое приложение следующим образом:
Файл: hello.py
[[email protected] FlaskApp]$ more hello.py
import sys
import logging
sys.path.insert(0,"/var/www/FlaskApp/")
from FlaskApp import app as application
[[email protected] FlaskApp]$
Файл: __init__.py
[[email protected] FlaskApp]$ more __init__.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, I love Flask!"
if __name__ == "__main__":
app.run()
[[email protected] FlaskApp]$
Моя структура каталогов выглядит следующим образом.
[[email protected] FlaskApp]$ pwd
/var/www/FlaskApp
[[email protected] FlaskApp]$ ls -la
total 24
drwxr-xr-x 3 apache apache 4096 Jan 19 03:21 .
drwxr-xr-x 6 root root 4096 Jan 19 02:00 ..
drwxr-xr-x 4 apache apache 4096 Jan 19 02:36 FlaskApp
-rwxr-xr-x 1 apache apache 164 Jan 19 02:32 hello.conf
-rwxr-xr-x 1 apache apache 107 Jan 19 03:21 hello.py
-rwxr-xr-x 1 apache apache 164 Jan 19 02:25 hello.wsgi
[[email protected] FlaskApp]$ cd FlaskApp/
[[email protected] FlaskApp]$ ls -la
total 24
drwxr-xr-x 4 apache apache 4096 Jan 19 02:36 .
drwxr-xr-x 3 apache apache 4096 Jan 19 03:21 ..
-rw-r--r-- 1 apache apache 150 Jan 19 02:35 __init__.py
-rw-r--r-- 1 apache apache 449 Jan 19 02:36 __init__.pyc
drwxr-xr-x 2 apache apache 4096 Jan 19 02:01 static
drwxr-xr-x 2 apache apache 4096 Jan 19 02:01 templates
[[email protected] FlaskApp]$
Мой апач .conf файл
<VirtualHost *:80>
ServerName www.mywebsite.com
ServerAlias mywebsite-ed.com
ServerAdmin [email protected]
WSGIScriptAlias//var/www/FlaskApp/hello.py
<Directory /var/www/FlaskApp/FlaskApp/>
Require all granted
</Directory>
Alias /static /var/www/FlaskApp/FlaskApp/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Require all granted
</Directory>
ErrorLog /var/log/httpd/error_log
LogLevel warn
CustomLog /var/log/httpd/access.log combined
</VirtualHost>
Я получаю эту ошибку:
[[email protected] FlaskApp]$ sudo tail -f /var/log/httpd/error_log
[sudo] password for idf:
[Thu Jan 19 03:23:46.918092 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] mod_wsgi (pid=4305): Target WSGI script '/var/www/FlaskApp/hello.py' cannot be loaded as Python module.
[Thu Jan 19 03:23:46.918161 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] mod_wsgi (pid=4305): Exception occurred processing WSGI script '/var/www/FlaskApp/hello.py'.
[Thu Jan 19 03:23:46.918225 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] Traceback (most recent call last):
[Thu Jan 19 03:23:46.918291 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] File "/var/www/FlaskApp/hello.py", line 5, in <module>
[Thu Jan 19 03:23:46.918546 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] from FlaskApp import app as application
[Thu Jan 19 03:23:46.918595 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] File "/var/www/FlaskApp/FlaskApp/__init__.py", line 1, in <module>
[Thu Jan 19 03:23:46.918671 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] from flask import Flask
[Thu Jan 19 03:23:46.918734 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] ImportError: No module named flask