※ 引述《nohunt (棒槌社畜)》之銘言:
: 大家好,小弟現在自學python沒多久(剛接觸coding沒多久),
: 許多基礎觀念並不是很好,有錯麻煩鞭小力一些。
: 現在遇到幾個不知道怎麼解的問題。
: 目前學習狀況:大致上都會google找答案
: 遇到問題:公司想測試python是否能呼叫 VB .Net的Dll
: google到的解答:使用Ironpython或pythonnet進行使用,
: 因為目前工作基本上都用Jupyter進行,
: 有嘗試import clr過,
: 而pythonnet也一直安裝失敗,
: 所以想來請問PTT大神們,
: 1.如果要呼叫.Net Dll是不是只有使用Ironpython才能解?
: 2.如果不是,下列是找到並嘗試後,但沒有解決,請問該如何解?
: VB .Net的DLL code:
: 目前先弄個簡易的dll進行測試
: https://i.imgur.com/drenHws.png
: 目前在python測試:
: 1. import ctypes:
: 都會出現AttributeError: function 'CalMathFormula' not found
: https://i.imgur.com/xXsQCuD.png
: 2. import clr:
: clr這邊充滿困惑,因為不知道為什麼並沒有AddReference(),
: 安裝pip也充滿問題?
: https://i.imgur.com/vYIHvTw.png
: 有在stack overview上找怎麼解
: 怎麼試都沒辦法讓python叫Dll,
: 找到的都說要用Ironpython
: https://i.imgur.com/uzFIWix.png
: 整個過年都在想辦法解決這個問題,
: 麻煩各位大神幫一下小弟
請教大大,我最近也在學呼叫dll. 我在clr.addreference後,出現訊息,應該是有找到.
dll
但我import就會錯誤,我的環境(python 3.6.5+pythonnet 2.3.0, win10-32bits , dll
同事是用VB寫的)
請大神幫一下小弟,感謝。
>>>
>>> clr.FindAssembly("USB005.dll")
>>> clr.AddReference("USB005")
<System.Reflection.RuntimeAssembly object at 0x03370070>
>>> from USB005 import *
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
from USB005 import *
ModuleNotFoundError: No module named 'USB005'
>>>
2/20更新:
自回一下,import "namesapce" 名稱就可以了,我一直以為是用.dll的名稱。