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

C# 发布使用python脚本的MVC应用程序,c#,python,asp.net,asp.net-mvc,azure,C#,Python,Asp.net,Asp.net Mvc,Azure,我目前有一个通过进程调用python脚本的MVC项目(新的processStartinfo(“/path/to/python.exe”,“/path/to/script.py”)。它在VisualStudio中运行得非常好。 当我在azure上发布这篇文章时,它将如何调用python.exe?(我可能没有准确地构造这个问题,因为这是我第一个发布的网站,并且对发布没有充分的了解) 另外,我确实尝试过使用IronPython,但由于我的脚本使用NLTK,我遇到了一系列问题,因此使用pip安装pyth

我目前有一个通过进程调用python脚本的MVC项目(新的processStartinfo(“/path/to/python.exe”,“/path/to/script.py”)。它在VisualStudio中运行得非常好。 当我在azure上发布这篇文章时,它将如何调用python.exe?(我可能没有准确地构造这个问题,因为这是我第一个发布的网站,并且对发布没有充分的了解)

另外,我确实尝试过使用IronPython,但由于我的脚本使用NLTK,我遇到了一系列问题,因此使用pip安装python&NLTK更容易,然后通过使用/path/to/script.py参数的命令行调用python.exe。任何输入都非常感谢


编辑:my homeController启动一个进程,将python的path_、脚本的path_传递到命令行,重定向输出并处理它(从输出)返回的数据。

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

我试着通过下面的变通方法来实现它,效果很好

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

  • 通过url
    https://.scm.azurewebsites.net
  • 安装一个站点扩展
    Python 2.7.12 x86
    ,如果使用32位版本的Azure WebApp作为示例,该扩展将安装在路径
    D:\home
    上。
  • 切换到Kudu CMD,然后您可以看到一个新的Python运行时,它已经安装在这里,您有权对它执行任何操作。
  • 命令
    cd Python27
    触摸get pip.py
    并复制url的内容
    https://bootstrap.pypa.io/get-pip.py
    通过
    Edit
    按钮进入
    get pip.py
    ,然后运行
    python get pip.py
    安装
    pip
    工具。
  • 命令
    Scripts\pip安装nltk
    以安装
    nltk
    软件包
  • 要下载nltk数据,请按如下命令
    python-m nltk.downloader-d:\home\Python27\nltk_data all
    ,在命令完成之前,请不要关闭当前浏览器窗口或切换其他URL 您可以通过url
    https://.scm.azurewebsites.net/ProcessExplorer/
    在另一个浏览器窗口中。 6.1或您可以在本地下载nltk数据,将其上载到Azure WebApp
  • 步骤2.用于使用NLTK包测试Python脚本

  • 在路径
    wwwroot
    处使用命令
    touch test.py
    ,并编辑以下内容

    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#

    只需使用python运行时的绝对路径&script
    D:\home\Python27\python
    &
    D:\home\site\wwwroot\test.python
    而不是在C#代码中使用它们


    请尝试并反馈您的结果。如有任何问题,请随时通知我。

    这真的取决于您在Azure中的操作方式。它是Azure网站吗?虚拟机?您可以使用Azure功能吗?Python代码是否需要在与网站完全相同的机器上运行?我在考虑Azure网站,但同事告诉我他认为不会可能是这样,但由于python经验不足,我不能完全确定。我编辑了我的问题以获取更多信息。我不喜欢发布的方式,只要它有效。据我所知,你不能在Azure网站上运行单独的进程。但没有任何东西阻止你使用Azure功能(Google it)或者在其他地方设置Python应用程序。