Вызов приложения / скрипта Python из C # - PullRequest
1 голос
/ 09 июня 2010

Я создаю сайт ASP.NET MVC (C #), на котором я хочу реализовать STV ( однократный переносимый голос * ) .Ранее я использовал OpenSTV для сценариев голосования, но с большим успехом, но никогда не использовал его программно.

* * * * * * * * * * * * * * * * * В проекте Google Code OpenSTV предлагается скрипт 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?

Если да, то как?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 09 июня 2010

Здесь - хороший пример того, как вызывать IronPython из C #, включая передачу аргументов и возвращение результатов;конечно, вы должны будете превратить этот код в функцию с ballotFname и reportFname в качестве аргументов.

3 голосов
/ 09 июня 2010

Лучший способ, вероятно, использовать IronPython. См. этот ответ для начальной точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...