2017-01-04 59 views
-1

我目前擁有通過Process調用python腳本的MVC項目(new processStartinfo(「/ path/to/python.exe」,「/path/to/script.py」)。當我在azure上發佈它時,它將如何調用python.exe?(我可能不會準確地構造這個問題,因爲這是我第一次發佈網頁,並且沒有完全理解發布)發佈使用python腳本的MVC應用程序

PS我嘗試使用IronPython,但由於我的腳本使用NLTK,我遇到了一堆問題,因此使用pip安裝python & nltk更容易,然後通過命令行調用python.exe, path/to/script.py。讚賞任何輸入。

編輯:我的homeController啓動一個進程,傳入path_of_python,path_of_script到命令行,重定向輸出,並做它的數據返回(從輸出)。

+0

這真的取決於你在Azure中如何做這件事。它是一個Azure網站嗎?虛擬機?你可以使用Azure函數嗎? Python代碼是否需要在與網站完全相同的機器上運行? – mason

+0

我正在考慮Azure網站,但同事告訴我他認爲這將不可能的方式,但由於小蟒蛇的經驗並沒有完全確定。我編輯了我的問題以獲取更多信息。只要它有效,我對發佈方式沒有任何偏好。 – Gio

+0

據我所知,您無法在Azure網站中運行單獨的進程。但沒有任何東西阻止你使用Azure函數(谷歌它)或在其他地方設置Python應用程序。 – mason

回答

0

似乎可以在C#中的Azure網站上使用Python腳本和NLTK包。

我試圖通過下面的解決方法來實現它,它工作正常。

步驟1對通過URL https://<your webapp name>.scm.azurewebsites.net NLTK Azure上的Web應用程序

  1. 訪問安裝Python &你的web應用的庫杜工具。
  2. 安裝網站擴展Python 2.7.12 x86如果使用32位版本的Azure WebApp作爲示例,將安裝在路徑D:\home處。 enter image description here
  3. 切換到Kudu CMD,然後您可以看到一個新的Python運行時已安裝在此處,並且您有權對其執行任何操作。 enter image description here
  4. 命令cd Python27touch get-pip.py和URL https://bootstrap.pypa.io/get-pip.py的內容複製到get-pip.py通過Edit按鈕,然後運行python get-pip.py安裝pip工具。 enter image description here
  5. 命令Scripts\pip install nltk安裝nltk包。
  6. 要下載NLTK數據,命令python -m nltk.downloader -d D:\home\Python27\nltk_data all如下,請不要關閉當前瀏覽器窗口或改用其他網址,直到命令完成 enter image description here 你可以在通過URL https://<your webapp name>.scm.azurewebsites.net/ProcessExplorer/查看如下過程中的下載任務其他瀏覽器窗口。 enter image description here 6.1或者您可以下載本地的nltk數據以將它們上載到Azure WebApp。

步驟2.爲了測試Python腳本與NLTK包

  1. 命令touch test.py在路徑wwwroot,和編輯下面的內容。

    import nltk 
    sentence = """At eight o'clock on Thursday morning 
    ... Arthur didn't feel very good.""" 
    tokens = nltk.word_tokenize(sentence) 
    print tokens 
    
  2. 控制檯顯示結果如下,它的工作原理。在C#中通過Process enter image description here

步驟3.呼籲python腳本

僅僅只使用python運行&腳本D:\home\Python27\python & D:\home\site\wwwroot\test.python,而不是他們在你的C#代碼的absoulte路徑。

請嘗試反饋您的結果。任何問題,請隨時讓我知道。

+0

我終於得到測試了,它工作了!!!謝謝 – Gio

相關問題