发布使用python脚本的MVC应用程序
我目前有通过Process调用python脚本的MVC项目(新的processStartinfo(“/ path / to / python.exe”,“/ path / to / scripts.py”)。这在visual studio中运行得非常好。当我发布这个时在azure上如何能够调用python.exe?(我可能没有准确地构建这个问题,因为这是我第一个发布的网页,并且没有完全理解发布)
PS我确实尝试使用IronPython,但由于我的脚本使用NLTK,我遇到了一堆问题所以用pip安装python&nltk比较容易,然后通过带有/ path / to / script参数的命令行调用python.exe。 PY。 任何输入都表示赞赏。
编辑:我的homeController启动一个进程,它将path_of_python,path_of_script传递给命令行,重定向输出并对它返回的数据(从输出)进行处理。
似乎可以在Azure网站上的C#中使用带有NLTK包的Python脚本。
我尝试通过下面的解决方法实现它,它工作正常。
步骤1.在Azure WebApp上安装Python和NLTK
- 通过URL
https://
访问您的webapp的Kudu工具。.scm.azurewebsites.net - 安装站点扩展
Python 2.7.12 x86
,如果使用32位版本的Azure WebApp作为示例,将安装在路径D:\home
。 - 切换到Kudu CMD,然后您可以看到已在此处安装的新Python运行时,您有权对其进行任何操作。
- 命令
cd Python27
并touch get-pip.py
并通过Edit
按钮将urlhttps://bootstrap.pypa.io/get-pip.py
的内容复制到get-pip.py
,然后运行python get-pip.py
安装pip
工具。 - Command
Scripts\pip install nltk
安装nltk
包。 - 要下载nltk数据,请执行以下命令
python -m nltk.downloader -d D:\home\Python27\nltk_data all
,请不要关闭当前浏览器窗口或切换其他URL,直到命令完成 您可以通过urlhttps://
在其他浏览器窗口中查看正在进行的下载任务。 6.1或者您可以在本地下载nltk数据以将其上载到Azure WebApp。.scm.azurewebsites.net/ProcessExplorer/
步骤2.使用NLTK包测试Python脚本
-
命令
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
-
控制台显示如下结果,它的工作原理。
步骤3.通过C#中的Process
调用python脚本
只使用python运行时的D:\home\Python27\python
路径和脚本D:\home\Python27\python
& D:\home\site\wwwroot\test.python
而不是在C#代码中使用它们。
请尝试反馈您的结果。 如有任何疑虑,请随时告诉我。