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 设置包路径的更多相关文章

  1. python 设置默认的导包路径

    在python中 可以通过 sys 模块添加导包时的搜寻路径, sys.path 返回的是所有默认导包路径的列表(搜索次序从下标为零开始,直到寻找到需要导入的包结束) sys.path.insert( ...

  2. YourSQLDba设置共享路径备份

    YourSQLDba可以将数据库备份到网络路径(共享路径),这个也是非常灵活的一个功能,以前一直没有使用过这个功能,最近由于一个需求,于是我测试了一下YourSQLDba备份到网络路径,中间遇到了一些 ...

  3. 详细解说Tomcat 设置虚拟路径的几种方法及为什么设置虚拟路径

    说明:此次使用的是Tomcat 7.0 很多朋友都会很疑惑,既然我们都知道在Tomcat服务器上部署项目只要将项目打包,然后放到webapps目录下就可以了,为什么还需要配置虚拟路径?的确,把项目放到 ...

  4. InstallShield打包设置相对路径

    InstallShield打包设置相对路径 在使用Installshield 打包安装文件时,添加打包文件时默认使用绝对路径,但是工程文件转移时(复制到其它位置时)编译时就会找不到安装文件,这样很不方 ...

  5. android adt自带eclipse无法设置ndk路径(找不到NDK配置)

    分步阅读 到android sdk官网下载r23版本的adt时自带的eclipse没有设置ndk路径的地方,通过Install New Software 发现无法更新,那么如何解决这个问题呢? 方便他 ...

  6. skyline TerraExplorer fly设置相对路径的方法

    软件环境:TerraExplorer Pro(以下简称TEP)6.5 在TEP中,对于本地(非网络)文件路径,默认都是绝对路径,在移动数据时非常麻烦,以下是本人总结出一些设置相对路径的规则 假设fly ...

  7. 通过扫描包路径获取包内class

    public static Set<Class<?>> getClasses(ClassLoader classLoader, String pack) { Set<Cl ...

  8. Eclipse无法设置NDK路径的解决方法

    如果在Eclipse中设置NDK路径的时候遇到下面的情况(尼玛,我的NDK设置呢?): 可以参考百度经验解决:http://jingyan.baidu.com/article/4d58d5413000 ...

  9. WAS下获取包路径下所有类

    最近做javaweb项目的混淆工作,用到proguard,该工具混淆.jar文件比较方便,故把所有项目代码和配置文件打成jar包, 生成的jar包经过proguard处理后,再次打包(解决progua ...

随机推荐

  1. Resource Manager

    Azure Resource Manager overview https://azure.microsoft.com/en-us/documentation/articles/resource-gr ...

  2. android语言适配

    虽然我们现在做的app基本只在国内使用,所以只需要中文,但是我们要把眼光放长远一点,以后我们的APP发展到了国外呢,所以我们就要做语言适配了   很简单 在res目录下,右键  New Resourc ...

  3. Comparison of B-Tree and Hash Indexes

    Understanding the B-tree and hash data structures can help predict how different queries perform on ...

  4. 全文检索引擎 Lucene.net

    全文搜索引擎是目前广泛应用的主流搜索引擎.它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行 ...

  5. unity, 取消ugui button响应键盘

    http://answers.unity3d.com/questions/859460/button-is-being-triggered-by-spacebar-after-clicke.html

  6. python之selenium

    selenium是处理异步加载的一种方法 总的来说是操作浏览器访问来获取自己想要的资料 优点是浏览器能看到的都能爬下来,简单有效,不需要深入破解网页加载形式 缺点是加载的东西太多,导致爬取速度变慢 # ...

  7. 2 TKinter绑定事件

    通过command属性给button绑定事件 目的:点击一下按扭,在窗口中出现一行字 第一种方法(command): #!/usr/bin/env python # _*_ coding:utf-8 ...

  8. 创建对象的最好方式&最好的继承机制(代码实例)

    /* 创建对象的最好方式:混合的构造函数/原型方式, *用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法) */ function People(sname){ this.nam ...

  9. jQuery tmpl用法总结

    之前很是头疼循环数据的渲染,搞一大堆的命名,一点点的赋值,很是麻烦,今天学习了一下jQuery插件tmpl,下面抛出一些使用方法,供以后参考: 官方网址:http://web.archive.org/ ...

  10. [java] JVM监控与调优

    原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html   光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...