2016-11-18 388 views
2

每次更新我的Python文件時,我都必須重新引導服務器才能看到更改。我試圖重新啓動Nginx和uWSGI沒有運氣。 Flask正在調試模式下運行。如何在不重新啓動整個服務器的情況下查看更改?Nginx,uWSGI,Flask應用在重啓服務器之前不會顯示更改

app.py

from flask import Flask 
import time 
import cv2 

app = Flask(__name__) 

@app.route("/") 
def main(): 
    return "Hello cob at " + time.time().__str__() + "\n" 

if __name__ == "__main__": 
    app.run(debug=True) 

uwsgi.ini

[uwsgi] 
socket = :9090 
plugin = python 
wsgi-file = /home/vagrant/PythonVision/app.py 
process = 3 
callable = app 

nginx.conf

server { 
    location/{ 
    include uwsgi_params; 
    uwsgi_pass 127.0.0.1:9090; 
    } 
} 

我與這些步驟測試此:

  • 變化,從「你好芯」到「你好Bob」中的返回信息,將文件保存
  • 刷新頁面在瀏覽器(瀏覽器清除緩存)沒有變化
  • 做須藤服務uwsgi重啓,須藤服務nginx的重新啓動
  • 刷新頁面在瀏覽器(瀏覽器清除緩存)沒有變化
+1

我無法重現您的問題。重新啓動uWSGI加載新的應用程序代碼。請[edit]包含[mcve]。 – davidism

+0

我懷疑你的uWSGI或nginx配置有問題。你能否看到當你重新啓動uWSGI和nginx時是否有錯誤日誌? – dvnguyen

+0

如果出現問題,爲什麼重新啓動會顯示爲正確狀態?另外,它會無法呈現任何內容? – Burf2000

回答

1

所以,我身邊有這樣一個辦法就是做這在我uwsgi.ini文件

觸摸重載= /home/vagrant/PythonVision/app.py

然後我接觸該文件的應用程序.py和BANG排序

+0

所以觸摸重新加載工程,但實際上重新加載uwsgi不?這沒有意義。 – davidism

+0

完全同意你,在Mac上我沒有問題,保存立即似乎更新?非常奇怪,但這修復了它。 – Burf2000

1

要實際調試模式運行你的應用程序燒瓶,運行此命令:

python /home/vagrant/PythonVision/app.py

然後你可以去瀏覽器:http://ip:5000/

因爲我知道你在流浪者身上運行,ip可能由你的配置來定義,但這超出了這個問題的範圍。

+0

這似乎並不是這個問題提出的問題。他們說他們需要重啓機器才能看到變化,而不是他們不知道如何運行他們的應用程序。 – davidism

+1

但是,如果他們通過一些WSGI服務器運行它,它可能不會更新。在調試模式下運行將自動重新加載新的源文件。 –

+0

他們已經表示他們試圖重新啓動uWSGI。他們說唯一有效的工作是重新啓動整個服務器。是的,以完全不同的方式運行它可能會做一些不同的事情,但它並沒有真正回答這個問題。另外,在生產環境中運行dev服務器是一個糟糕的想法,無論是否是調試模式。 – davidism

相關問題