2009-09-24 23 views
7

Tôi đang lưu trữ IronPython của tôi trong một # webapp C như sau:Không thể sử dụng DateTime trong IronPython

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

Và mã python của tôi trông như thế này:

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

from System import DateTime 
theDate = DateTime.Today() 

nào tạo ra lỗi này:

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

Tôi đã dành thời gian trên Google và hầu hết mã tôi thấy dường như không hoạt động nữa.

Phiên bản Thời gian chạy IronPython của tôi là v2.0.50727 - tôi có nên nâng cấp không? Tôi đã nghĩ rằng DateTime sẽ có được từ cửa ra vào đầu mặc dù?

+0

Thông báo lỗi chính xác là gì? Có python sử dụng dấu ngoặc trên tài sản? (Nếu không, hãy thử 'DateTime.Today'.) –

+0

2.0.50727 nghe như số phiên bản CLR thay vì số phiên bản IronPython, btw. Phiên bản nào sẽ hiển thị nếu bạn chỉ chạy ipy? –

Trả lời

11

Thử thêm tham chiếu đến mscorlib thay vì System.Core. Chúng tôi đã thay đổi hành vi lưu trữ mặc định tại một số điểm (2.0.1? 2.0.2?) Để điều này được thực hiện theo mặc định khi lưu trữ. Bạn có thể thực hiện điều này từ mã lưu trữ của mình bằng:

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

Cảm ơn, đã được phát hiện. – littlecharva

9

Chỉ cần kiểm tra và sự cố là bạn đang cố gọi Hôm nay làm phương thức thay vì thuộc tính. Hãy thử thay vào đó (không cần phải thêm tham chiếu đến System.Core):

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

Nhìn vào câu hỏi, lỗi dường như xuất phát từ lỗi nhập, thay vì thực tế là "Hôm nay" đang được gọi là hàm. – Rohit

+0

@Rohit: Chúng tôi thực sự không thể nói, vì chúng tôi chưa được thông báo lỗi là gì. Với các dấu ngoặc trên bạn làm * nhận * một thông báo lỗi ... –

+0

Ngoại lệ đã kích hoạt trên lệnh nhập, do đó, nó thậm chí không đạt đến cuộc gọi Hôm nay. Xin cảm ơn sự giúp đỡ của bạn. – littlecharva

Các vấn đề liên quan