在C#中调用Python中遇到的坑(No module named xxx)
2024-09-01 11:26:43
例如Python的代码是这个样子的。
# coding=<utf->
# -*- coding: utf- *- import requests
import urllib def ClearDirect():#直接删除
print('sadsa')
C#调用
static void Main(string[] args)
{
ScriptRuntime pyRuntime = Python.CreateRuntime(); //创建一下运行环境
var engine = pyRuntime.GetEngine("python");
dynamic obj3 = pyRuntime.UseFile(@"C:\Users\HYCX\Downloads\CSharpCallPython2\PythonApplication2\demo.py"); //调用一个Python文件
Console.WriteLine(obj3.ClearDirect());
}
会报错
谷歌一下各种bug,有的人说这样添加库。在python的代码中这么搞。
sys.path.append('你的django项目路径')
sys.path.append('python的site-packages路径')
那我那么多python文件都得加这个吗?试了一下 也不行。
所以咱们在C#调用的时候 加载 后台看见别人这么搞。
static void Main(string[] args)
{
ScriptRuntime pyRuntime = Python.CreateRuntime(); //创建一下运行环境
var engine = pyRuntime.GetEngine("python");
var pyScope = engine.CreateScope();
var paths = engine.GetSearchPaths();
paths.Add(@"C:\Python27amd64\Lib"); engine.SetSearchPaths(paths);
dynamic obj3 = pyRuntime.UseFile(@"C:\Users\HYCX\Downloads\CSharpCallPython2\PythonApplication2\demo.py"); //调用一个Python文件
Console.WriteLine(obj3.ClearDirect());
}
弄完之后 还是不行。
最后再添加一行。。。
paths.Add(@"C:\Python27amd64\Lib\site-packages");
paths.Add(@"C:\Python27amd64\Lib");
把packges也加载进去就ok了。
最新文章
- htaccess分布式配置文件常用写法
- php常用的字符串函数
- 一些IOS开发中的小技巧
- Docker: adding a file from a parent directory
- POJ2778 DNA Sequence(AC自动机 矩阵)
- 消除 activity 启动时白屏、黑屏问题
- python数据类型之 set
- python3 写文件
- [LeetCode] 42. Trapping Rain Water 解题思路
- Linux下使用NMON监控、分析系统性能 -转载
- Ch05 视图模型
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 算法模板——sap网络最大流 3(递归+邻接矩阵)
- Java虚拟机的内存结构
- 音频处理EQ的基本概念
- 如何让SQLServer的 itemNum 字段 按照数字大小顺序排序
- PHP——base64的图片的另类上传方法
- cin与cout格式化输出
- Angular 序列化和反序列化和遍历
- propsData 选项 全局扩展的数据传递