2014-11-24 52 views
3

我有一個非常簡單的應用程序瓶(myflaskapp.py):沒有模塊在運行uWSGI

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return "<span style='color:red'>I am app 1</span>" 

如果我運行:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app 

我得到以下輸出:

Traceback (most recent call last): 
    File "myflaskapp.py", line 1, in <module> 
    from flask import Flask 
ImportError: No module named flask 
unable to load app 0 (mountpoint='') (callable not found or import error) 
*** no app loaded. going in full dynamic mode *** 

我不明白爲什麼。我已安裝燒瓶(點安裝燒瓶)。如果我運行ipython並導入燒瓶,它也可以在那裏工作。有任何想法嗎?謝謝!

+0

您是否使用了的virtualenv?您需要從virtualenv安裝/運行uwsgi,或者將uwsgi指向virtualenv。 – davidism 2014-11-24 23:43:40

+0

我不是從virtualenv運行。我將創建一個並提供更多信息。 – agerrr 2014-11-24 23:53:02

+0

我現在正在virtualenv上運行上面的代碼(我在裏面插入了一個瓶子)。但錯誤是一樣的。 – agerrr 2014-11-25 01:23:52

回答

9

以什麼爲我工作結束時添加-H /路徑/到/的virtualenv到uWSGI命令:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app -H /path/to/virtualenv 

我也有在virtualenv中和uWSGI不同Python版本。我仍在調查這是否會導致任何問題。

2

我遇到了同樣的問題一次,因爲有一些版本衝突

然後而是採用PIP安裝uwsgi我做到了我的包管理器 在Ubuntu機,

sudo apt-get install uwsgi 

還要檢查並運行myflaskapp.py而不使用uwsgi,即在代碼中使用app.run()

*注意:這將由werkzeug服務器執行。

0

我面臨類似的問題,並發現如果我們有一個模塊安裝在虛擬環境中(在這種情況下Flask),我們可能需要添加--virtualenv路徑以及運行Flask應用程序所需的基本指令使用uWSGI

所以根據uWSGI文件的指令是:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app --virtualenv /path_to_virtualenv 
相關問題