1

STV ( Single Transferable Vote ) 投票を実装したい ASP.NET MVC (C#) サイトを構築しています。私は以前に OpenSTV を投票シナリオに使用したことがあり、大きな成功を収めましたが、プログラムで使用したことはありません。

OpenSTV Google Code プロジェクトは、他のアプリケーションから OpenSTV を使用できるようにする Python スクリプトを提供します。

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()

C# ASP.NET MVC サイトからこのような Python 呼び出しを行う方法はありますか?

もしそうなら、どのように?

前もって感謝します!

4

2 に答える 2

4

C# から IronPython を呼び出す方法の良い例を次に示します。これには、引数の受け渡しと結果の返しが含まれますもちろん、そのコードを引数としてballotFnameとを使用して関数にする必要があります。reportFname

于 2010-06-09T03:55:24.277 に答える
3

最善の方法は、おそらく IronPython を使用することです。出発点については、この回答を参照してください。

于 2010-06-09T00:47:13.017 に答える