C#調用Python中Pyd第三方庫方法_第1頁
C#調用Python中Pyd第三方庫方法_第2頁
C#調用Python中Pyd第三方庫方法_第3頁
C#調用Python中Pyd第三方庫方法_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C#調用Python中Pyd第三方庫方法]一、目標:通過C#使用命令行的方式調用Python中含有pyd第三方庫的腳步程序(注:通過IronPython相關DLL文件的方式調用Pyd格式的庫文件非常不方便)二、所需軟件以及環(huán)境配置1軟件:python3.5.1,VS2010,Pyd文件2環(huán)境配置:添加python路徑到環(huán)境變量Path中,如下圖所示:C:\Users\Administrator\AppData\Local\Programs\Python\Python35\Lib;C:\Users\Administrator\AppData\Local\Programs\Python\Python35;3Pyd文件配置將Pyd文件放到python根目錄的Lib文件中(若為執(zhí)行該操作會在導入python模塊時出現(xiàn)NomodulenamedXXX),如下所示:£'、Eplugins2016/3/25S^...p亠Private201&/3/2SS^...交吐笑1qtcanf2016/9/2星朋云...CDNF丈件1KBIWW15MGH.DAC2016/7/1星朗五...DACKW2.026KB.1CCMastGirKEimelPy.pyd2&16/9/2 ...PWD文件3f7啟iOKOH圖2找到一個Pyd文件心sics-p^AagesUttsqlrte-311?r砲日朗2Di礙a爭..2口1問羽=爍西]■斶E星服..曲1問29a^..宜件夾蟲〔球±4lldh'tor2D1W20碗..認t^-||?4erno2016/9^25fill-WunittrsA2016/9/29呈釀..hurllib2016/9^縣吧..Ek2CH陰0匸姐“立時201^29確艾1換吐mil2016/9^fiH-riK201^20翻■■iCCMjilerlCflrnelPy.pyd201^25■掃,..PYD文岸37,010繩圖3將Pyd放到指定的路徑下4與Pyd相關的DLL文件配置為了使Pyd包能正常導入,需要將與之相關的DLL文件放到windows系統(tǒng)目錄下,如下圖所示:選ActivationWizardR&rcENU.d112016/4/2;星朗…應用程序擴舉35<8包avcodec-57.dll2016/4/22星朗…應用程序擴展13.213KB.電.avfornqat-57-d12OL6M/22星朋,2.53DKB.電.avutil-55.dll2016/4/22星朋.“772KB國Bentley.LicenEe.Library.10.COM.d1.2016/4/2;星期…族翟1,601KB國Bentley.LicenEe.Library.10.NETdll2016/4/2;星期…族翟530國BentleyJiclib.10.d112016/4/2;星朝…1.5MKB闔Berrtley.1irlib.lD.ncgui.dl1201.6/4/2;星朝…1.525KB|闔Bentley.lirlib.dll201.5/11/1s^g...2.694KD閹CCApi.dll2016/4/26星朗,“1&&KB閹ConnectClientWrapperNatrv&iVC8DidII201.6/4/22星凱“115KB闔cpprestl4C_2_8.dL2016/6/7 ..5.B33KB囤gdal201.dll2016/6/7^3-..12.266KB藺geogram.dll201.6/4/22星期…2.47&KB囤Iconv.dll201.6/6/7曲二...913KB圖5與文中Pyd文件對應的DLL文件將圖5中的DLL文件放到C:\Windows\SysWOW64下。配置完成三、C#調用python腳本1首先通過VS建立一個C#的控制臺2所需要的usingList如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;

usingIronPython.Hosting;usingMicrosoft.Scripting.Hosting;usingSystem.Diagnostics;3執(zhí)行腳本classProgram{privatestaticvoidCallExe(){Processusepy=newProcess();stringpath="F:\\cloud.py";ProcessStartInfostartInfo=newProcessStartInfo(@"python.exe","F:\\cloud.py");startInfo.UseShellExecute=false;startInfo.CreateNoWindow=false;usepy.StartInfo=startInfo;}}程序中path為所要執(zhí)行的指定路徑下面的python腳本名,文中腳本執(zhí)行效果如下:image-C:/CC_!image:C;image-C:/CC_!image:C;ZCCJimage-C:/CC_!image:C;ZCCJimage-C:/CC_!image:C;ZCCJimage-C:/CC_!image:C;ZCCJimage-C:/CC_!image:C;ZCCJimage-C:/CC_!image:C;ZCCJimage:G:/GG_!image:C:ZGCJimage:G:/GG_!image:C:ZGCJimage:G:/GG_!image:C:ZGCJimage:G:/GG_!image:C:ZGCJimage:G:/GG_!SDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DftTft/[lata^Lion_fountain/Fliatns\DJISDK_DftTftZilaCazLion_fountainXFliotcsXDJISDK_DA1fl/rtatazLion_fountain/F>iatnsXDJISDK_DAIftzrtatazLion_fountainZFhotcsXDJISDK_DA1fl/rtatazLion_fountain/F>iatnsXDJISDK_DAIftzrtatazLion_fountainZFhotcsXDJISDK_DA1fl/rtatazLion_fountain/F>iatnsXDJISDK_DAIftzrtatazLion_fountainZFhotcsXDJISDK_DA1fl/rtatazLion_fountain/F>iatnsXDJISDK_DAIftzrtatazLion_fountainZFhotcsXDJISDK_DA1fl/rtatazLion_fountain/F>iatnsXDJIB614.JFG0615.JFGOS16.JFG0617.JFG061G.JFG061?.JFG0620.JFG0621.JFG0622.JFG0623.JFG0624.JFG0625.JFG0B2E.JFG00Z7.JFG0B2B.JFGEJBZ5.JFG0B3B.JFGEJB31.JFG0B32.JFG0033.JFGtJtJ34.JPGLlieaepotriangLilatiDnjobhasbeensuJbmittedandisPending6通過C#調用python腳本執(zhí)行效果waitingtcbeprocessed?■?4路徑中有空格字符處理4.1問題描述:再用命令行運行python的相關程序時,尤其是當輸入python中的變量有路徑或者其他字符行數(shù)組時,不能直接在變量中輸入"空格”字符,否則python無法識別〃\〃〃_L解決方法:在python腳本路徑中前后加入“\”,如下程序所示:"\""+input+"\"";input為輸入的路徑namespaceCloudService{classProgram{privatestaticstringgetValidArgument(stringinput){if(input.Contains("")){return"\""+input+"\"";}returninput;}privatestaticvoidCallExe(){Processusepy=newProcess();stringpythonPath=System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"cloud.py");stringimagePath=@"C:/CC_SDK_DATA/data/Lionfountain/Photos";stringprojectPath=@"C:/CC_SDK_DATA/projectPy/automaster";stringarg=getValidArgument(pythonPath)+""+getValidArgument(imagePath)+""+getValidArgument(projectPath);Console.WriteLine(arg);ProcessStartInfostartInfo=newProcessStartInfo(@"python.exe",arg);startInfo.UseShellExecute=false;startInfo.CreateNoWindow=false;usepy.StartInfo=startInfo;//usepy.StartInfo.Arguments=path;//usepy.StartInfo.UseShellExecute=false;//usepy.StartInfo.RedirectStandardOutput=true;//usepy.StartInfo.RedirectStandardInput=true;//usepy.StartInfo.RedirectStandardError=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論