我想在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>
在WSGIDaemonProcess上使用python-path不會有幫助,因爲必須爲要使用的特定Python安裝編譯mod_wsgi。你不能混合來自兩個不同版本的東西,甚至如果它們沒有以相同的方式配置,即使從相同的Python版本的不同安裝中混合也會成爲問題。 Anaconda Python不太可能與系統Python兼容。需要對Anaconda Python重新編譯mod_wsgi。 –
感謝您的幫助。我已經轉向使用gunicorn和nginx。似乎更容易配置到我的首選python路徑。 –