[討論] 在 .NET 使用 Pythonnet 的應用情境
板上各位大大好
最近工作有接觸到 Pythonnet
想請教一下有使用過 Pythonnet 大大的經驗
我們部門軟體的核心架構是使用.NET ( UI, Custom Class, Custom Collection... )
為了使程式外部化,將部分功能的模組寫在 Python
透過 Pythonnet 就可以在 .NET 動態執行 Python Script
Python 的好處是有很多現成的 Package 可以縮短軟體開發的時間
但 Python 與 .NET 是兩種不同的語言,資料結構當然也不同
在這種使用情境下寫的 Python Code 傳入的變數若是定義在 .NET 的物件
則必須在 Python method 裡操作 .NET 物件的 property , method
要怎麼使用 .NET 物件還得回去看 C# 寫的 Source Code
且這種方式很難 Debug Python Code
因為 App 是 .NET,故 IDE 只能 Debug .NET 的部分
若 Python Script 寫的很複雜或呼叫很多層,要 Debug Python 就只能到處加 Print
而 Python Script 執行結束後,所有變數都會消失
若要 Keep 住某些 Python 變數的狀態或資料,必須要先轉成 .NET 物件並存到 .NET
Collection
其他 Python Script 要使用已保留資料,就必須再去從 .NET Collection 把資料拿出來
因為高度相依 .NET 建立的資料結構及物件,若沒有使用我們部門的 .NET 核心,這些
Python 模組不能單獨使用
寫出來的 Python Code 感覺變得很奇怪,不像是 Python
雖然有問過部門前輩現行做法的奇怪之處,但得到的回應是 習慣就好了 (疑?
因此想問看看板上大大在 .NET 使用 Pythonnet 是在什麼情境會需要?
這種程式開發方法會是主流嗎? 謝謝~
--
我不懂為什麼要這麼麻煩......
PTVS可以同時debug python和c#
為什麼不把.net保成一個服務讓外部python直接call?
為什麼不用json格式來做序列化跟反序列化來交換就好?
其中一邊做成webapi給另一邊呼叫應該比較容易吧!
json protobuf這些去decouple
未看先猜最原本的 code 就這樣寫,後來加功能的就複
製一樣的模式繼續寫,最後就大到改不動了。
謝謝 我找時間試一下^^@orangeterry
@laputaflutin 有些是包成 dll 讓 python call 但
UI 在 .NET做完 Python 某些行為還得把資料拿回 UI
@jinmin88 變數可以存沒問題,但兩種語言型別不同的
問題會建議怎麼處理呢?
@Murasaki0110 非常感謝,認識了一個厲害的東西!
@Phenomenon 也許是吧 我的資資歷尚淺不曉得緣由
用pipe會不會比較好
54
Re: [新聞] 外派年薪百萬挨轟雷到爆 華碩回應了小弟不懂 接觸的幾乎所有ML DL都是用python寫的 paper提供的code也是python kaggle平台也只支援python跟R (某些比賽也是有人用c++ 不過要轉)44
[問卦] 初學Python是不是養成一堆壞習慣?現在流行入門學Python,真的會養成一堆壞習慣耶 昨天看學生寫的code,一堆人在那邊: for s in list: If list.index(s) % 2 == 0 看到快吐血22
[問卦] Python是怎麼突然爆紅的?在2015年左右以前 程式語言的霸主要嘛以偏底層可以控制記憶體的C/C++為主 要嘛是物件導向能力強大的Java、C# 或者是網頁在使用的html、php、JavaScript 即使是資料科學分析也有R 工程科學也有matlab 結果就是Python在這幾年迅速竄起 直追Java和C的龍頭寶座17
[請益] 資策會入門課程選擇、選技能樹各位前輩好,小弟是27歲的非本科生,最近面臨職業上的一些選擇,有意願想轉換進入程 式領域。已經爬了不少文,自己現在也有在上udemy的python課,然後搭配書本在學。目 前想去修資策會的課程,算是加強練習然後補一下在程式領域的第一條履歷。 但是現在對自己想要哪個位置的職缺的概念還很模糊,對程式的感覺還在形成當中,現在 要馬上選課程方向,不知道該往哪一條技能樹走16
[心得] 用pycharm 重構 python 單元測試最近這陣子在客戶那邊有機會開始碰到一些 python 的程式, 我過去的經驗都是靜態語言居多,一直想碰一下 python 或 Ruby, 這次倒是個不錯的契機,剛好可以練手一下。 越寫倒是越愛上 python 了。 我對開發工具、開發方式比較熟悉一點,對 python 語言特性不熟,14
[麥書] 要收二手MBP嗎目前用的是surface pro 6 其實日常滿少用到的 寫程式也只想在桌電寫 加上我是寫C#,是windows體系 筆電都拿來文書用,看書逛網拍,遊戲也不太玩9
[問卦] Python 出 type hint代表投降了?Python之前標榜dynamic typing 弄出一堆 variable type不清不楚的code 現在有了type hint,是不是代表投降了呀? 就算runtime才決定type,變數終究還是得有type的,不然人類很難懂 Python在資料科學與機器學習極具價值,但初學者學python真的會被荼毒耶3
[問卦] 八卦板為何鄙視 Python?平常工作都用C++。 剛才由於測試需要,偷看了一下公司的Python code,覺得言簡意賅,看了挺舒服。 但為什麼八卦板那麼瞧不起Python啊? 都說Python是文組用的玩具? 我們公司一堆卡內基美隆畢業的用Python寫程式,怎麼就台灣人鄙視Python?8
[麥書] Macbook Pro 13' M1 開發人員的軟體實際測試剛剛看到一個已拿到Macbook Pro 13' M1的開發者 幫開發者測試了各種IDE實際使用,畫面一鏡到底只有加速,沒有額外剪輯 他的頻道有測試的IDE、工具及框架如下: ---------------------------------------4
Re: [問卦] C++可以啟發孩子的程式天份嗎?python 只能寫玩具,要進一步有疑慮 c++ 能寫大系統,可是周邊套件浩瀚如海,也有疑慮 不然 vb .net 安定,整個都包好好很完整,且有微軟這個頂尖的商人很賺錢 很賺錢才能保證一直維護更新與時俱進呀! python會被淘汰的,新的東西出來就被淘汰了,就像python以前大家都嘛流行perl