ironpython的介绍请自行搜索。 一句话,python是一个类似lua js的动态预言。ironpython是在net环境执行python的类库。

效果:在网站中调用一个python文件test.py,test.py引用另一个文件夹下的python文件ceshi.py

调用其中的方法 ceshi.py中的方法。

效果

1 创建一个c#的web网站

2 安装ironpython  Install-Package IronPython

3 网站根下建一个default.aspx的页面

4 创建 pyscripts 文件夹

pyscripts 文件夹下 ,建一个test.py的文件,

pyscripts 文件夹下,建一个modules文件夹,modules文件夹下建一个ceshi.py的文件和一个__init__.py的文件

整体结构如下

代码部分:

default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="pythonscript._default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lab" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>

  default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPython.Hosting; namespace pythonscript
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//选项
Dictionary<string, Object> options = new Dictionary<string, object>();
options["Debug"] = true; //启动ironpython并获取脚本文件对象
var python = Python.CreateRuntime(options); string path = AppDomain.CurrentDomain.BaseDirectory + @"pyscripts\test.py";
dynamic script = python.UseFile(path); //调用Python里的类
var service = script.MyService();
string result = service.GetData(DateTime.Now.ToString());
lab.Text = result;
}
}
}

  

test.py

先引入sys,然后设置脚本路径,类似windows的各种环境变量如path等。 python将从此处找脚本

然后 引入另一个文件的类 (modules文件夹名,ceshi文件名,Myservice类名)

# coding=utf-8
import sys
sys.path.append("d:\\documents\\visual studio 2013\\Projects\\pythonscript\\pythonscript\\pyscripts");
from modules.ceshi import MyService

ceshi.py

一个类 两个方法

import sys

class MyService(object):
def GetData(self, value):
return "hello" + value def MyFunction(name):
return "Bye Bye " + name

  

 __init__.py  内容为空即可。也可以设置一些初始设置

ironpython 2.75 在c#中的使用的更多相关文章

  1. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  2. 使用IronPython给.Net程序加点料

    开发的时候,经常被策划频繁变动的方案而苦恼.这时候就想要加入点动态语言来辅助一下. 在考虑用动态语言之前也曾想过使用动态加载dll的方式,实现基础接口来调用.在卸载的时候遇到了问题,虽可以通过应用程序 ...

  3. 使用IronPython给.Net程序

    使用IronPython给.Net程序加点料 开发的时候,经常被策划频繁变动的方案而苦恼.这时候就想要加入点动态语言来辅助一下. 在考虑用动态语言之前也曾想过使用动态加载dll的方式,实现基础接口来调 ...

  4. IronPython .NET Integration官方文档翻译笔记

    http://ironpython.net/documentation/dotnet/这是原文地址 以下笔记仅记录阅读过程中我认为有必要记录的内容,大多数都是依赖翻译软件的机翻,配合个人对代码的理解写 ...

  5. 在windows中,使用SSH登录VMware ubuntu linux虚拟机

    测试环境 主机:window7 sp1 64位 专业版 虚拟机:VMware workstation 12 player 虚拟机操作系统: ubuntu 16.4 目标:在ubuntu下运行SSH服务 ...

  6. Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN

    Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...

  7. IronPython初体验

    介绍 在 C# 程序中嵌入 IronPython 得到了很好的支持.在本教程中,我们将展示如何完成这个项目. 首先,我们将展示两个非常基本的例子,说明如何执行一个不导入任何模块的非常简单的脚本.然后, ...

  8. hadoop中InputFormat 接口的设计与实现

    InputFormat 主要用于描述输入数据的格式, 它提供以下两个功能.❑数据切分:按照某个策略将输入数据切分成若干个 split, 以便确定 Map Task 个数以及对应的 split.❑为 M ...

  9. 面试加分项-HashMap源码中这些常量的设计目的

    前言 之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获. HashMap默认初始化大小为什么是1 << 4( ...

随机推荐

  1. :eq(index)

    匹配一个给定索引值的元素 从 0 开始计数 查找第二行 HTML 代码: <table> <tr><td>Header 1</td></tr> ...

  2. MySQL OnlineDDL

    参考资料: http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html http://www.mysqlperfo ...

  3. 【python cookbook】【数据结构与算法】6.在字典中将键映射到多个值上

    问题:一个能将键(key)映射到多个值的字典(即所谓的一键多值字典[multidict]) 解决方案:如果想让键映射到多值,需要将这多个值保持到另一个容器如列表或集合中: >>> d ...

  4. C#操作CSV存取类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  5. iOS 序列化与反序列化

    开篇 1到底这个序列化有啥作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教 ...

  6. 文件名唯一(A.txt => An.txt)

    /// <summary> /// 文件名唯一(A.txt => An.txt) /// </summary> /// <param name="full ...

  7. php socket函数详解

    最近在用socket实现服务端向客户端主动推送消息 函数名 描述 socket_accept() 接受一个Socket连接 socket_bind() 把socket绑定在一个IP地址和端口上 soc ...

  8. 过滤器(Filter)案例:检测用户是否登陆的过滤器

    *****检测用户是否登陆的过滤器:不需要用户跳转到每个页面都需要登陆,访问一群页面时,只在某个页面上登陆一次,就可以访问其他页面: 1.自定义抽象的 HttpFilter类, 实现自 Filter ...

  9. (jdbc)取得数据库自动生成的主键方法

    一些类,在前面的博客中有,就不重复了 public class Test2 { TestDAO t=new TestDAO(); /*前提是数据表的主键是自动增加的, *取得数据库自动生成的主键 * ...

  10. office 2013 产品秘钥

    9RN4T-JPBQV-XQMC9-PM9FP-PGWP9 TKX7J-VDN26-Y2WKQ-7MG8R-X2CC9 N9M8X-QDKGK-W27Q6-2GQYT-TJC9K 4VNXV-F7PB ...