Вызов Python App / Script от C #
-
25-09-2019 - |
Вопрос
Я создаю сайт ASP.NET MVC (C #), где я хочу реализовать STV (Одиночное передаваемое голосование) голосование. Отказ Я использовал OpenStv для голосования сценариев раньше, с большим успехом, но я никогда не использовал его программно.
То Проект OpenStv Google Code предлагает сценарий Python Это позволяет использовать OpenStv из других приложений:
import sys
sys.path.append("path to openstv package")
from openstv.ballots import Ballots
from openstv.ReportPlugins.TextReport import TextReport
from openstv.plugins import getMethodPlugins
(ballotFname, method, reportFname) = sys.argv[1:]
methods = getMethodPlugins("byName")
f = open(reportFname, "w")
try:
b = Ballots()
b.loadUnknown(ballotFname)
except Exception, msg:
print >> f, ("Unable to read ballots from %s" % ballotFname)
print >> f, msg
sys.exit(-1)
try:
e = methods[method](b)
e.runElection()
except Exception, msg:
print >> f, ("Unable to count votes using %s" % method)
print >> f, msg
sys.exit(-1)
try:
r = TextReport(e, outputFile=f)
r.generateReport();
except Exception, msg:
print >> f, "Unable to write report"
print >> f, msg
sys.exit(-1)
f.close()
Есть ли путь для меня, чтобы сделать такой вызов Python с моего C # ASP.NET MVC MVC?
Если так, как?
Заранее спасибо!
Решение
Здесь является хорошим примером о том, как позвонить на IronPython из C #, включая передачу аргументов и возвращающихся результатов; Конечно, вам придется сделать этот код в функцию, с ballotFname
а также reportFname
как его аргументы.
Другие советы
Лучший способ, вероятно, использовать IronPython. Видеть Этот ответ для отправной точки.