2017-01-04 2 views
-1

В настоящее время у меня есть проект MVC, который вызывает скрипт python через Process (новый processStartinfo ("/ path/to/python.exe", "/path/to/script.py"). отлично, в visual studio. Когда я публикую это на лазурном языке, как он сможет вызвать python.exe? (Возможно, я не могу точно сформулировать этот вопрос, так как это моя первая веб-публикация для публикации и не имеет полного понимания публикации)Публикация MVC-приложения, использующего скрипт python

PS Я попытался использовать IronPython, но поскольку мой сценарий использует NLTK, я столкнулся с проблемой, поэтому было проще установить python nltk с помощью pip, а затем вызвать python.exe с помощью командной строки, которая принимает аргумент/path/to/script.py. Любой ввод оценивается.

EDIT: мой homeController запускает процесс, который проходит в path_of_python, path_of_script в командной строке, перенаправляет вывод и работает с данными, которые он возвращает (с вывода).

+0

Это действительно зависит от того, как вы делаете это в Azure. Это Лазурный сайт? ВМ? Можете ли вы использовать функции Azure? Должен ли код Python запускаться на той же машине, что и на веб-сайте? – mason

+0

Я думал о веб-сайте Azure, но коллега сказал мне, что думает, что это будет невозможно, но не был полностью уверен из-за небольшого опыта на питоне. Я отредактировал мой вопрос для получения дополнительной информации. Я не имею никакого предпочтения с способом публикации, если это работает. – Gio

+0

Вы не можете запускать отдельные процессы на сайтах Azure, насколько мне известно. Но ничего не мешает вам использовать Azure Functions (Google it) или настроить приложение Python в другом месте. – mason

ответ

0

Кажется, что можно использовать скрипт Python с пакетом NLTK в C# на веб-сайте Azure.

Я попытался реализовать его с помощью обходного пути, как показано ниже, и он отлично работает.

Шаг 1. Для установки Python & NLTK на Azure WebApp

  1. доступа инструмент Kudu вашего веб-приложение через URL https://<your webapp name>.scm.azurewebsites.net.
  2. Установите расширение сайта Python 2.7.12 x86, которое будет установлено на пути D:\home, если использовать 32-разрядную версию Azure WebApp. enter image description here
  3. Переключитесь на Kudu CMD, после чего вы увидите новое время выполнения Python, которое было установлено здесь, и у вас есть разрешение на выполнение каких-либо операций над ним. enter image description here
  4. Команды cd Python27 и touch get-pip.py и скопировать содержимое URL 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.

Шаг 2. Для сценария Python тестирования с NLTK пакета

  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. Вызовы питон скрипт через Process в C#

Просто используя только absoulte путь питона выполнения & сценария D:\home\Python27\python & D:\home\site\wwwroot\test.python вместо них в коде C#.

Пожалуйста, попробуйте и ответьте на ваш результат. Любое беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.

+0

Я, наконец, получил, чтобы проверить это, и это сработало !!! Спасибо – Gio

Смежные вопросы