码迷,mamicode.com
首页 > 编程语言 > 详细

IronPython 设置包路径

时间:2016-04-30 11:22:30      阅读:1434      评论:0      收藏:0      [点我收藏+]

标签:

C#中添加对python文件或者对python包的引用时出现"no module .."的问题时的解决办法。

技术分享

对hello.py 做一些简单的修改

添加

import syssys.path.append(<DIR>)

因为我的hashlib在该目录"D:\IronPython2.7\Lib"下,<DIR>为"D:\IronPython2.7\Lib

技术分享

////

def load_config(keyword_category, config_path = r./config):
    #load keywords under designated category from config file
    ###INPUT: str keyword_category -> also serves as name of config file; _
       #str config_path -> location of config files
    ###OUTPUT: list result -> keywords loaded from config file
    import os.path
    config_file = os.path.join(config_path, keyword_category+.txt)
    f = read(config_file, r)
    result = []
    for line in f:
        result.append(line.replace(\n,‘‘).decode(utf8))
    f.close()
    return result

在C#这一端,调用代码如下(项目已经添加引用ironpython.dll, ironpython.hosting.dll, microsoft):

public string[] GetKeywords(string category, string config_path)
{

       ScriptRuntime pyRunTime = Python.CreateRuntime();
       dynamic pyScript = pyRunTime.UseFile(@".\python scripts\file_utils.py");

       List<string> tmp = pyScript.load_config(category, config_path);
       tmp.TrimExcess();

       string[] result = tmp.ToArray();

       return result;
}

运行时VS2013反馈的错误信息如下:

An unhandled exception of type ‘IronPython.Runtime.Exceptions.ImportException‘ occurred in Microsoft.Dynamic.dll

Additional information: No module named os.path


很奇怪的一点是,其他python代码里引用os等标准库完全没有问题,不知道为什么惟独os.path会出现问题

IronPython 设置包路径

标签:

原文地址:http://www.cnblogs.com/zeroone/p/5448260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!