首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pythonnet如何向dll程序集添加引用?

pythonnet如何向dll程序集添加引用?
EN

Stack Overflow用户
提问于 2020-03-10 12:22:26
回答 1查看 4K关注 0票数 0

我试图通过pythonnet将dll包导入python。我知道包CLR和pythonnet最终都有一个名为clr的名称空间,因此命令"import clr“可能不明确。长话短说,我似乎需要的不是另一个。我希望能够指定dll程序集的地址;这个程序集工作

代码语言:javascript
复制
import os as os
import clr
#https://pypi.org/project/pythonnet/#:~:text=NET%20Common%20Language%20Runtime%20(CLR,to%20embed%20Python%20into%20a%20.
import sys
Apath=os.path.normpath("C://Folder//Folder//Folder//AssemblyA.dll")
clr.AddReference(Apath)

但是这个失败了(从这里那里得到了这个想法):

代码语言:javascript
复制
import os as os
import clr
#https://pypi.org/project/pythonnet/#:~:text=NET%20Common%20Language%20Runtime%20(CLR,to%20embed%20Python%20into%20a%20.
import sys
BfolderPath=os.path.normpath("C://Folder//Folder//Folder")
sys.path.append(BfolderPath)
clr.AddReference('AssemblyB.dll')

当我尝试运行第二个程序集时,我得到以下错误:"System.IO.FileNotFoundException:无法找到程序集'AssemblyB.dll'. at Python.Runtime.CLRModule.AddReference(字符串名)“

,这个也失败了,

代码语言:javascript
复制
import os as os
import clr
#https://pypi.org/project/pythonnet/#:~:text=NET%20Common%20Language%20Runtime%20(CLR,to%20embed%20Python%20into%20a%20.
import sys
BfolderPath=os.path.normpath("C://Folder//Folder//Folder")
clr.AddReferenceToFileAndPath(Bpath)

"AttributeError:模块'clr‘没有属性'AddReferenceToFileAndPath'“

ps1。我需要第二或第三种方式来工作,因为我必须确保第二个程序集不会与另一个名称相同的程序集混淆。ps2。我无法找到pythonnet的文档,也无法看到在我的clr中有哪些命令可用。有什么想法吗?

任何小费都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2022-01-09 05:54:39

第二个想法是,

.dll 中删除clr.AddReference('AssemblyB.dll')并使用clr.AddReference('AssemblyB'),因为clr.AddReference()只需要程序集名称,不管是.exe of .dll还是文件夹路径

这就是为什么第一个想法行不通的原因!

第三个想法是,clr.AddReferenceToFileAndPath()无法工作,因为它是Ironpython而不是pythonnet的一部分。

Ironpython也像pythonnet一样使用,但是Ironpython使用托管python代码,pythonnet不使用托管代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60617588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档