我要運行用Python寫的我的Windows Phone 8的C#應用程序內的Skeinforge切片機程序。我已經決定,我應該使用IronPython的做到這一點,我已經決定,我可以在ipy.exe終端當我安裝了IronPython的我內運行Skeinforge。我的問題是,雖然我很努力找出如何託管並運行IronPython的Python腳本的Windows Phone 8,我也已經得到了一個桌面窗口中運行簡單的Hello World腳本中窗體應用程序,應用程序控制臺傳送輸出到調試控制檯下面的代碼:運行 - Python腳本/應用8
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DebugWriter debugW = new DebugWriter();
Console.SetOut(debugW);
}
private void button1_Click(object sender, EventArgs e)
{
TextWriter tw = new StreamWriter("Test.py");
tw.Write(scriptBox.Text);
tw.Close();
try
{
var ipy = Python.CreateRuntime();
dynamic test = ipy.UseFile("Test.py");
}
catch (Exception ex)
{
Debug.WriteLine("Error: " + ex.Message);
}
}
}
}
這是DebugWriter:
class DebugWriter : TextWriter
{
private StringBuilder content = new StringBuilder();
public DebugWriter()
{
Debug.WriteLine("Writing console to debug");
}
public override void Write(char value)
{
base.Write(value);
if (value == '\n')
{
Debug.WriteLine(content.ToString());
content = new StringBuilder();
}
else
{
content.Append(value);
}
}
public override Encoding Encoding
{
get { return System.Text.Encoding.UTF8; }
}
}
我不知道怎麼甚至8應用程序,雖然增加了IronPython的圖書館我的Windows Phone作爲標準庫不會導入。我曾經試過,雖然與主源代碼編譯顯然是現已解散的Windows Phone 7個的庫和我可以導入這些庫,但我得到調試終端上絕對沒有任何反應,當我嘗試運行我的Hello World腳本。
做任何你有什麼想法如何得到這個迴環中的Windows Phone 8,如果你知道如何在Windows 8的操作/地鐵/ RT,那麼這將也可能是WP8工作。
更新: 我已經看過再次調試輸出,我似乎得到這個錯誤嘗試使用WP7庫運行一個Hello World腳本時:
A first chance exception of type 'System.NotImplementedException' occurred in Microsoft.Scripting.DLL
Error: The method or operation is not implemented.
鐵Python不支持Windows Phone 8的 - 就這麼簡單。另外,如果一個庫支持WP8,那**不表示它會自動支持Win8/RT。 –