Cha*_*had 4 .net python import ironpython module
我能够创建Python脚本并通过Visual Studio/.NET 4.0动态运行它们,如下所示:
# testScript.py file:
import sys
sys.path.append(r'C:\Program Files (x86)\IronPython 2.7.1\Lib')
import os
os.environ['HTTP_PROXY'] = "127.0.0.1:8888"
import urllib2
response = urllib2.urlopen("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)
然后在.NET 4.0 WinForms项目中:
ScriptEngine engine = Python.CreateEngine();
ScriptSource script = engine.CreateScriptSourceFromFile("testScript.py");
ScriptScope scope = engine.CreateScope();
script.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
但是,我导入的IronPython DLL不包含所有标准模块,所以我必须这样做
import sys
sys.path.append(r'C:\Program Files (x86)\IronPython 2.7.1\Lib')
Run Code Online (Sandbox Code Playgroud)
步骤,以便我可以运行接下来的4行.
有什么方法可以避免这种情况吗?
我将发布应用程序,我不想依赖于每个人的机器上的文件路径相同!
有一种扩展方法,允许您直接执行此操作:
ScriptEngine engine = Python.CreateEngine();
ScriptSource script = engine.CreateScriptSourceFromFile("testScript.py");
ScriptScope scope = engine.CreateScope();
engine.SetSearchPaths(new string[] { "C:\\Program Files (x86)\\IronPython 2.7.1\\Lib" });
script.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
最好将stdlib与您的应用程序一起包含在私有目录中,而不是依赖于它的安装,但这取决于您.
| 归档时间: |
|
| 查看次数: |
2801 次 |
| 最近记录: |