में सी # डीएल का उपयोग कैसे करें मैंने सी # का उपयोग करके एक डीएल बनाया है। IronPython में डीएलएल का उपयोग कैसे करें। मैंने clr.AddReference ("yxz.dll") का उपयोग कर डीएलएल जोड़ने की कोशिश की है। लेकिन यह विफल रहता है। मैंने आयरनपीथन लिपि की निष्पादन निर्देशिका में डीएल को रखने का प्रयास किया है। फिर भी यह बताता है कि डीएलएल को संदर्भित करने का प्रयास करते समय "नाम xyz नहीं मिला"।IronPython
उत्तर
मुझे लगता है कि यह फ़ाइल को ढूंढने में असफल रहा है क्योंकि यह नहीं जानता कि इसे कहां देखना है, here देखें कि विस्तृत विवरण के लिए clr.AddReference ...() फ़ंक्शन कैसे काम करता है।
Creating .NET Classes Dynamically from IronPython उदाहरण, एक असेंबली बनाता है (जिसे बाद में "DynamicAsm.dll" के रूप में डिस्क में सहेजा जाता है)। इसमें 'DynamicType
"नामक एक कक्षा शामिल है, जिसमें' test
'नामक एक स्थिर विधि है। यह विधि चार पूर्णांक लेती है और उन्हें एक साथ जोड़ती है।
The nice thing is that this saves "DynamicAsm.dll" to disk. You can then start an IronPython interactive interpreter session and do the following :
>>> import clr
>>> clr.AddReference('DynamicAsm.dll')
>>> import DynamicType
>>> DynamicType.test(2, 3, 4, 5)
14
ध्यान दें कि उदाहरण import
बयान में वर्ग के नाम उपयोग करता है।
'आयात sys प्रिंट sys का उपयोग करें।पथ 'कहां निर्धारित करें कि clr.AddReference dlls की तलाश में है – mydogisbox
क्या मैं वास्तव में बाहर से ऐसा कर सकता हूं? या क्या मुझे वास्तव में क्लियर आयात करना है और मेरी आयरनपीथन लिपि में असेंबली का संदर्भ जोड़ना है? मुझे यहां कुछ असेंबली मिली हैं जिन्हें मैं स्थिर रूप से आयात करना चाहता हूं ताकि वे हमेशा लिपि में उपलब्ध हों। –
import clr
clr.AddReferenceToFileAndPath(r"C:\Folder\Subfolder\file.dll")
टिप्पणियों में जेफ द्वारा प्रस्तावित सबसे आसान तरीका है। यह भी काम करता है:
import clr
import sys
sys.path.append(r"C:\Folder\Subfolder") # path of dll
clr.AddReference ("Ipytest.dll") # the dll
import TestNamspace # import namespace from Ipytest.dll
आप 'clr.AddReferenceToFileAndPath' का भी उपयोग कर सकते हैं, जो वास्तव में ऐसा करता है। –
मुझे यह व्यवहार केवल आयरनपीथन कंसोल से मिलता है। जब मैं एक स्क्रिप्ट चलाता हूं तो यह ठीक है। जब मैं आयरनपीथन की एक स्क्रिप्ट चलाता हूं, तो 'sys.path' में मेरी वर्तमान कार्यशील निर्देशिका का एक पूर्ण पथ होता है, इसलिए यह काम करता है। जब मैं कंसोल में टाइप करता हूं, तो 'sys.path' में केवल वर्तमान कार्य निर्देशिका के लिए' '' 'होता है। यह व्यवहार में अंतर की व्याख्या कर सकता है। –
मैंने कोशिश की, लेकिन एक त्रुटि हो रही है: विशेषता त्रुटि: 'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है 'AddReferenceToFileAndPath' – Avis
आप इस का उपयोग कर सकते हैं:
import clr
clr.AddReferenceToFile("yxz.dll")
यह clr.AddReferenceToFile (फ़ाइल का नाम) उपयोग करना बेहतर है, क्योंकि यह एक रिश्तेदार पथ लेता है।
import clr
clr.AddReferenceToFile("xxx.dll")
तो फिर तुम हमेशा की तरह आयात से कक्षाएं आयात कर सकते हैं:
import xxx
या
from xxx import *
मेरा सुझाव है कि आप इस पुस्तक की जाँच करने के लिए, यह बहुत उपयोगी है। https://play.google.com/store/apps/details?id=com.gavin.gbook
AddReferenceToFileAndPath सापेक्ष निर्देशिका पथ, fwiw के साथ भी काम करता है। – EdwardGarson
मुझे यह व्यवहार केवल आयरनपीथन कंसोल से मिला है। जब मैं एक स्क्रिप्ट चलाता हूं तो यह ठीक है। जब मैं आयरनपीथन की एक स्क्रिप्ट चलाता हूं, sys.path में मेरी वर्तमान कार्यशील निर्देशिका के लिए एक पूर्ण पथ होता है, इसलिए यह काम करता है। जब मैं कंसोल में टाइप करता हूं, sys.path में केवल '।' शामिल होता है वर्तमान कार्य निर्देशिका के लिए। यह व्यवहार में अंतर की व्याख्या कर सकता है।
एक hacky समाधान का एक सा है, मैं तो मैं ऊपर इस फाइल का निरपेक्ष पथ के साथ एक वातावरण चर IRONPYTHONSTARTUP सेट
"""This hacky script fixes the sys.path when I run the ipy console."""
import sys
import os
sys.path.insert(0, os.getcwd())
del sys
del os
fixpath.py एक फ़ाइल बना। फिर जब भी मैं अपना आयरनपीथन कंसोल शुरू करता हूं, यह स्क्रिप्ट चलाया जाता है और मेरा sys.path
में मेरी वर्तमान कार्यशील निर्देशिका का पूर्ण संदर्भ शामिल है और बाद में कॉल clr.AddReference
ठीक से काम करता है।
- 1. IronPython
- 2. IronPython
- 3. IronPython गुंजाइश
- 4. IronRuby और IronPython
- 5. IronPython और pdb.set_trace()
- 6. सी ++ \ IronPython एकीकरण उदाहरण कोड?
- 7. Cpython व्याख्याकर्ता/IronPython व्याख्याकर्ता clr
- 8. IronPython टूल्स को अनइंस्टॉल कैसे करें?
- 9. App.Config के साथ IronPython का उपयोग कैसे करें?
- 10. क्या आप IronPython में .NET ऑब्जेक्ट टाइप कर सकते हैं?
- 11. ironpython गति अन्य .NET भाषाओं की तुलना कैसे करता है?
- 12. python या ironpython के साथ mssql तक पहुंचने का सबसे आसान तरीका क्या है?
- 13. क्या हम .NET ironpython में पांडा डेटाफ्रेम लोड कर सकते हैं?
- 14. एक .NET अनुप्रयोग में IronPython को एम्बेड करने के लिए कैसे करें
- 15. Cpython में क्या किया जा सकता है जो IronPython में नहीं किया जा सकता है?
- 16. एक आवेदन में एक ग्राफिकल इंटरैक्टिव IronPython खोल कैसे एम्बेड करें?
- 17. IronPython दुभाषिया के लिए PyCharm में "अद्यतन कंकाल" पृष्ठभूमि कार्य को कैसे नियंत्रित करें?
- 18. कैसे एक IronPython स्क्रिप्ट से एक सी # निर्माता के लिए एक लैम्ब्डा अभिव्यक्ति पारित करने के लिए?
- 19. कैसे की तरह कुछ के साथ एक विधानसभा के लिए एक संदर्भ लोड करने के बाद IronPython
- 20. कैसे वेब/विंडोज फार्म में सी # के साथ एक साथ IronRuby या IronPython उपयोग करने के लिए?
- 21. क्यों तेजी से आधिकारिक अजगर दुभाषिया
- 22. आयरनपीथन
- 23. बीओओ बनाम आयरनपीथन
- 24. लोहेपीथॉन में मॉड्यूल आयात करते समय क्या होता है?
- 25. सी #
- 26. सी # गतिशील संकलन और "माइक्रोसॉफ्ट.CSharp.dll" त्रुटि
- 27. मैं आयरनपीथन में वेब सेवा कैसे बना सकता हूं?
- 28. अप्रबंधित कोड
- 29. आयरनपीथॉन स्क्रिप्टरटाइम सीपीथॉन पायथोनपैथ
- 30. आयरनपीथन "लुकअप त्रुटि: अज्ञात एन्कोडिंग: हेक्स"
क्या होता है यदि आप लाइन को clr.AddReference ("yxz") में बदलते हैं, तो इससे कोई फर्क पड़ता है? –
यदि समस्या यह है कि डीएलएल नहीं मिल पा रहा है, तो गलत क्या है, यह निर्धारित करने के लिए Sysinternals द्वारा प्रोसेस मॉनीटर का उपयोग करें। –
fuslogvw.exe यह भी पता लगाने का एक अच्छा तरीका है कि एक प्रबंधित DLL क्यों नहीं मिला - यह w/प्लेटफॉर्म एसडीके आता है। –