2016-05-17 95 views
0

我想在apache2服務器和mod_wsgi的ec2實例上設置一個簡單的應用程序。似乎有不成比例的差異配置mod_wsgi使用正確的Python路徑。使用mod_wsgi配置python路徑

我在下面放置了代碼片段。

我得到的Apache2日誌錯誤是:

回溯(最近通話最後一個): 文件 「/var/www/html/flaskapp_tut/flaskapp_tut.wsgi」,7號線,在 從flaskapp_tut進口應用作爲應用 ]從瓶進口瓶 導入錯誤文件「/var/www/html/flaskapp_tut/flaskapp_tut.py」,1號線,在 :無模塊名爲燒瓶

燒瓶通過Anaconda安裝絕對安裝,但是顯然mod_wsgi正在使用python的錯誤版本。

日誌文件說,它的使用: 阿帕奇/ 2.4.7(Ubuntu的)的mod_wsgi/3.4的Python/2.7.6配置 - 恢復正常操作

但是我使用python 3.x和森蚺安裝節目時,我使用 「這蟒蛇」,即/首頁/ Ubuntu的/ anaconda3 /斌/ Python的

的mod_wsgi的文件說,你可以配置Python路徑的命令: WSGIPythonHome /家庭/ Ubuntu的/ anaconda3 /斌/蟒蛇,但是我不知道在哪裏放置這個配置。

希望得到任何幫助。這好像應該是很多straightforard比,根據我使用作爲指導的步驟: http://www.datasciencebytes.com/bytes/2015/02/24/running-a-flask-app-on-aws-ec2/

flaskapp_tut.wsgi

#!/home/ubuntu/anaconda3/bin/python 

import sys 
sys.path.insert(0, '/var/www/html/flaskapp_tut') 
sys.path.append('/home/ubuntu/anaconda3/bin/python') 

from flaskapp_tut import app as application 

flaskapp_tut.py

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello from Flask!' 

if __name__ == '__main__': 
    app.run() 

000-default.conf文件中的設置

DocumentRoot /var/www/html 

    WSGIDaemonProcess flaskapp_tut threads=5 
    WSGIScriptAlias//var/www/html/flaskapp_tut/flaskapp_tut.wsgi 

    <Directory flaskapp_tut> 
     WSGIProcessGroup flaskapp_tut 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    </Directory> 

回答

0

mod_wsgi/3.4 Python/2.7.6

這是一個相當老的mod_wsgi,這是告訴你,你安裝的mod_wsgi是針對Python/2.7.6編譯的。

我建議你得到一個當前的mod_wsgi,並確保它是針對python-3.x編譯的。另外,(我不認爲這會解決你的問題,但值得一提),你可以指定一個Python路徑作爲參數WSGIDaemonProcess。這可以幫助你至少看到正確的東西(並且在某些情況下可能比將sys.path.append()放在代碼中更清潔)。看到這裏:http://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIDaemonProcess.html

+1

在WSGIDaemonProcess上使用python-path不會有幫助,因爲必須爲要使用的特定Python安裝編譯mod_wsgi。你不能混合來自兩個不同版本的東西,甚至如果它們沒有以相同的方式配置,即使從相同的Python版本的不同安裝中混合也會成爲問題。 Anaconda Python不太可能與系統Python兼容。需要對Anaconda Python重新編譯mod_wsgi。 –

+0

感謝您的幫助。我已經轉向使用gunicorn和nginx。似乎更容易配置到我的首選python路徑。 –