下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭教育中的安全教育與家園共育的協(xié)同
- 2024牛肉養(yǎng)殖基地與加工廠合作協(xié)議3篇
- 2025年度冷鏈物流區(qū)域代理銷售及配送服務協(xié)議
- 2025年度軟件開發(fā)合同:基于人工智能的智能客服系統(tǒng)2篇
- 二零二五年度商鋪出租租賃合同(含租賃合同解除條件)
- 2025年度口罩產品售后服務與保障合同
- 2025年度園林景觀設計、施工、生態(tài)保護與修復服務合同
- 二零二五年度2025年度新能源技術研發(fā)廠房退租協(xié)議
- 二零二五年度名義法人免責協(xié)議書:大數(shù)據(jù)分析與云計算服務合同
- 二零二五年度景區(qū)資源經(jīng)營授權書詳細條款
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護理指南解讀)
- 生產計劃控制程序文件
- 山東省濟南市2022年中考英語情景運用拔高練習(Word版含答案)
- 護理查房-糖尿病足 PPT課件
- 強力夯實加固地基質量通病防治
- (高清正版)T-CAGHP 015—2018地質災害治理工程監(jiān)理預算標準(試行)
- Q∕GDW 12083-2021 輸變電設備物聯(lián)網(wǎng)無線節(jié)點設備技術規(guī)范
- 公司物流倉儲規(guī)劃方案及建議書
- 智能掃地機器人畢業(yè)設計
- 佳能EOS7D數(shù)碼單反相機說明書
- 大型焰火燃放活動方案審批表
評論
0/150
提交評論