2009-09-24 10 views
7

でのDateTimeを使用することはできません:が、私はそうのようなC#のWebアプリケーションでは、私のIronPythonのをホスティングしていますIronPythonの

var engine = Python.CreateEngine(); 
var scope = engine.CreateScope(); 
var script = Engine.CreateScriptSourceFromString(pythonCode, SourceCodeKind.Statements); 
script.Execute(scope); 

そして、私のPythonのコードは次のようになります。このエラーが発生し

import clr 
clr.AddReference('System.Core') 

from System import DateTime 
theDate = DateTime.Today() 

IronPython.Runtime.Exceptions.ImportException: Cannot import name DateTime 

私はGoogleで時間を費やしていますが、私が見つけたコードのほとんどはもう動作しません。

IronPythonのランタイムバージョンはv2.0.50727です。アップグレードする必要がありますか?私はDateTimeが早いドアから入ってきたと思っていたでしょうか?

+0

正確にはあなたにエラーメッセージが表示されますか? Pythonはプロパティにかっこを使用しますか? (そうでない場合は、 'DateTime.Today'を試してください。) –

+0

2.0.50727は、IronPythonのバージョン番号btwではなくCLRバージョン番号のように聞こえます。 ipyを実行するだけであれば、どのバージョンが表示されますか? –

答えて

11

System.Coreの代わりにmscorlibへの参照を追加してみてください。デフォルトのホスティング動作をある時点(2.0.1〜2.0.2?)に変更し、ホスティング時にこれがデフォルトで行われるようにしました。これはあなたのホスティングコードから次のようにして行うことができます:

engine.Runtime.LoadAssembly(typeof(string).Assembly); 
+0

ありがとう、それにスポットがあった。 – littlecharva

9

ちょうどチェックされている問題は、プロパティの代わりにメソッドとしてTodayを呼び出そうとしていることです。これを代わりに試してください(System.Coreへの参照を追加する必要はありません)。

import clr 
from System import DateTime 
theDate = DateTime.Today 
print theDate 
+0

質問を見ると、エラーは「今日」が関数として呼び出されているという事実ではなく、インポートの失敗に起因しているようです。 – Rohit

+0

@Rohit:エラーメッセージの内容を知らされていないので、実際にはわかりません。あなたの括弧で*エラーメッセージが表示されます... –

+0

例外は、インポートコマンドで発生していたので、今日の呼び出しに達していませんでした。 とにかく助けてくれてありがとう。 – littlecharva

関連する問題