一尘不染

发布使用python脚本的MVC应用

python

我目前有一个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传递给命令行,重定向输出并对其返回的数据(从输出)进行处理。


阅读 289

收藏
2021-01-20

共1个答案

一尘不染

在Azure网站上的C#中,似乎可以将Python脚本与NLTK包一起使用。

我试图通过以下一种变通方法来实现它,并且效果很好。

步骤1.在Azure WebApp上安装Python和NLTK

  1. 通过url访问Webapp的Kudu工具https://<your webapp name>.scm.azurewebsites.net
  2. 如果使用32位版本的Azure WebApp作为示例,请Python 2.7.12 x86安装将在路径上安装的网站扩展D:\home在此处输入图片说明
  3. 切换到Kudu CMD,然后您会看到一个新的Python运行时,该运行时已安装在此处,并且您有权对其进行任何操作。 在此处输入图片说明
  4. 命令cd Python27touch get-pip.py然后将url的内容复制https://bootstrap.pypa.io/get-pip.pyget-pip.pyviaEdit按钮中,然后运行python get-pip.py以安装该pip工具。 在此处输入图片说明
  5. Scripts\pip install nltk用于安装nltk软件包的命令。
  6. 要下载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脚本

  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. 控制台显示结果如下,它可以正常工作。 在此处输入图片说明

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

仅仅只使用python运行和脚本的absoulte路径D:\home\Python27\pythonD:\home\site\wwwroot\test.python来代替他们在你的C#代码。

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

2021-01-20