欢迎来到天天文库
浏览记录
ID:47426662
大小:292.49 KB
页数:4页
时间:2020-01-10
《C#调用Python中Pyd第三方库方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#调用Python中Pyd第三方库方法]一、目标:通过C#使用命令行的方式调用Python中含有pyd第三方库的脚步程序(注:通过IronPython相关DLL文件的方式调用Pyd格式的库文件非常不方便)二、所需软件以及环境配置1软件:python3.5.1,VS2010,Pyd文件2环境配置:添加python路径到环境变量Path中,如下图所示:C:UsersAdministratorAppDataLocalProgramsPythonPython35Lib;C:UsersA
2、dministratorAppDataLocalProgramsPythonPython35;3Pyd文件配置将Pyd文件放到python根目录的Lib文件中(若为执行该操作会在导入python模块时出现NomodulenamedXXX),如下所示:图2找到一个Pyd文件图3将Pyd放到指定的路径下4与Pyd相关的DLL文件配置为了使Pyd包能正常导入,需要将与之相关的DLL文件放到windows系统目录下,如下图所示:图5与文中Pyd文件对应的DLL文件将图5中的DLL文件放到C:Wi
3、ndowsSysWOW64下。配置完成三、C#调用python脚本1首先通过VS建立一个C#的控制台2所需要的usingList如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingIronPython.Hosting;usingMicrosoft.Scripting.Hosting;usingSystem.Diagnostics;3执行脚本classProgram{private
4、staticvoidCallExe(){Processusepy=newProcess();stringpath="F:\cloud.py";ProcessStartInfostartInfo=newProcessStartInfo(@"python.exe","F:\cloud.py");startInfo.UseShellExecute=false;startInfo.CreateNoWindow=false;usepy.StartInfo=startInfo;}}程序中path为所要执行的
5、指定路径下面的python脚本名,文中脚本执行效果如下:图6通过C#调用python脚本执行效果4路径中有空格字符处理4.1问题描述:再用命令行运行python的相关程序时,尤其是当输入python中的变量有路径或者其他字符行数组时,不能直接在变量中输入“空格”字符,否则python无法识别解决方法:在python脚本路径中前后加入“”,如下程序所示:"""+input+""";input为输入的路径namespaceCloudService{classProgram{privatestati
6、cstringgetValidArgument(stringinput){if(input.Contains("")){return"""+input+""";}returninput;}privatestaticvoidCallExe(){Processusepy=newProcess();stringpythonPath=System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"cloud.py");stringimagePa
7、th=@"C:/CC_SDK_DATA/data/Lionfountain/Photos";stringprojectPath=@"C:/CC_SDK_DATA/projectPy/automaster";stringarg=getValidArgument(pythonPath)+""+getValidArgument(imagePath)+""+getValidArgument(projectPath);Console.WriteLine(arg);ProcessStartInfostartIn
8、fo=newProcessStartInfo(@"python.exe",arg);startInfo.UseShellExecute=false;startInfo.CreateNoWindow=false;usepy.StartInfo=startInfo;//usepy.StartInfo.Arguments=path;//usepy.StartInfo.UseShellExecute=false;//usepy.StartInfo.RedirectStanda
此文档下载收益归作者所有