发布使用python脚本的MVC应用
我目前有一个MVC项目,可以通过Process调用python脚本(新的processStartinfo(“ / path / to /
python.exe”,“ /path/to/script.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#中,似乎可以将Python脚本与NLTK包一起使用。
我试图通过以下一种变通方法来实现它,并且效果很好。
步骤1.在Azure WebApp上安装Python和NLTK
- 通过url访问Webapp的Kudu工具
https://<your webapp name>.scm.azurewebsites.net
。 - 如果使用32位版本的Azure WebApp作为示例,请
Python 2.7.12 x86
安装将在路径上安装的网站扩展D:\home
。 - 切换到Kudu CMD,然后您会看到一个新的Python运行时,该运行时已安装在此处,并且您有权对其进行任何操作。
- 命令
cd Python27
,touch get-pip.py
然后将url的内容复制https://bootstrap.pypa.io/get-pip.py
到get-pip.py
viaEdit
按钮中,然后运行python get-pip.py
以安装该pip
工具。 Scripts\pip install nltk
用于安装nltk
软件包的命令。- 要下载
python -m nltk.downloader -d D:\home\Python27\nltk_data all
如下所示的nltk数据命令,请在命令完成之前不要关闭当前浏览器窗口或切换其他URL您可以通过
https://<your webapp name>.scm.azurewebsites.net/ProcessExplorer/
另一个浏览器窗口的URL来查看正在执行的下载任务。6.1或者,您可以在本地下载nltk数据以将其上传到Azure WebApp。
第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.通过
Process
在C#中调用python脚本仅仅只使用python运行和脚本的absoulte路径
D:\home\Python27\python
&D:\home\site\wwwroot\test.python
来代替他们在你的C#代码。请尝试并反馈您的结果。如有任何疑问,请随时告诉我。
- 通过url访问Webapp的Kudu工具