发布使用python脚本的MVC应用程序

时间:2017-01-04 21:49:15

标签: c# python asp.net asp.net-mvc azure

我目前有通过Process调用python脚本的MVC项目(新的processStartinfo(" /path/to/python.exe" ;," /path/to/script.py")在视觉工作室中完美无缺。 当我在azure上发布这个如何调用python.exe时? (我可能没有准确地构建这个问题,因为这是我发布的第一个网站,并且没有完全理解发布)

P.S。我确实尝试使用IronPython,但由于我的脚本使用了NLTK,我遇到了一堆问题所以用pip安装python& nltk比较容易,然后通过带有/ path / to / script参数的命令行调用python.exe的.py。任何输入都表示赞赏。

编辑:我的homeController启动一个进程,该进程将path_of_python,path_of_script传递给命令行,重定向输出并对它返回的数据(来自输出)进行处理。

1 个答案:

答案 0 :(得分:0)

似乎可以在Azure网站上的C#中使用带有NLTK包的Python脚本。

我尝试通过下面的解决方法实现它,并且它工作正常。

步骤1.安装Python& Azure WebApp上的NLTK

  1. 通过网址https://<your webapp name>.scm.azurewebsites.net访问您的网络应用的Kudu工具。
  2. 如果使用32位版本的Azure WebApp作为示例,请安装将在路径Python 2.7.12 x86上安装的网站扩展D:\homeenter image description here
  3. 切换到Kudu CMD,然后您可以看到已在此处安装的新Python运行时,您有权对其执行任何操作。 enter image description here
  4. 命令cd Python27touch get-pip.py并将网址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。
  7. 步骤2.使用NLTK包测试Python脚本

    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. 控制台显示如下结果,它有效。 enter image description here

    3. 步骤3.通过C#中的Process调用python脚本

      只使用python运行时的absoulte路径&amp;脚本D:\home\Python27\python&amp;在您的C#代码中使用D:\home\site\wwwroot\test.python代替它们。

      请尝试反馈您的结果。如有任何疑虑,请随时告诉我。