问题标签 [pythonnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1027 浏览

c# - 有谁知道在 .Net 或 Mono 应用程序中集成 python(anaconda 和 anaconda 模块)的直接方法?

我已经为此苦苦挣扎了几天,似乎无法找到实现这一目标的直接方法。我对 .Net 和 Mono 没有太多经验,但足以构建应用程序。

我遇到的问题是我想编写 ac# 应用程序,并在后台运行 python 进程。这些 python 进程也有导入,因此我需要能够在它们的 anaconda 环境中运行它们。

我已经阅读并尝试过 IronPython 和 PythonNet,但只取得了有限的成功。由于 IronPython 实际上能够运行我的 python 脚本,因此它找不到导入。另一方面,Pythonnet 在 *** 中一直很痛苦,因为我似乎无法让它运行,既不是通过从 Nuget 安装,也不是通过 Anaconda 安装,也不是从源代码构建。我相信 pythonNet 将是实现这一目标的最佳选择,但无法让它工作,因为安装程序总是抱怨我的 .Net 版本,或者我使用 Python.Runtime 的单声道应用程序找不到正确的 python 安装。

我在带有 monodevelop/visual studio 代码的 Ubuntu 18.04 64 位机器上使用 Anaconda2(本地安装)。为了清楚起见,我实际上已经在两个 stackexchange 上寻找解决方案,如 pythonnet github 页面。

0 投票
0 回答
470 浏览

c# - 如何为要在 python.net 中使用的 C# 类实现 __repr__?

我安装了pythonnetv 2.3.0。我有一个在 Python 中使用的 C# 类库。我有一个Point类(代码片段):

当我在 Python 中使用这个类库时(在 Python shell 中):

因为我覆盖了ToString(),所以当我运行时,str(p1)我看到了对象的自定义视图。但是,当我只是访问一个变量p1时,它会转到__repr__()引擎盖下的方法,这让我很难看<Geometry.Point object at 0x000000000558F828>

C# 类中是否有可以覆盖的pythonnet方法,以便在获取__repr__?

https://github.com/pythonnet/pythonnet/issues/680

0 投票
0 回答
303 浏览

python - Visual Studio Python 环境 - 他们隐藏了什么,它在哪里?

我正在使用 VS 2017 并且我已经安装了 pythonnet。我创建了一个 VS 项目“Python 应用程序”。我有其他代码(C# .NET)我想从这个新的 Python 应用程序访问。

我应该能够:导入 clr

但是,在 VS 2017 中一切正常。我确定它可以工作,因为不仅要导入 CLR,而且我正在运行 .Net 代码(可以看到控制台输出)。我遇到的问题是当我不在 VS 2017 中运行时。这个 Python 应用程序的目的是向 Python 编码同事提供有关如何运行 .Net DLL 的演示。所述编码人员没有 Visual Studio,因此必须手动完成正在发生的“VS 环境”魔术(当他们安装 .Net 库时)。

如果我直接从 cmd 运行或使用其他东西(如 notepadd++),我会得到 ModuleNotFoundError: No module named 'clr'

VS 在哪里隐藏 clr.pyd 和 Python.Runtime.dll?据我了解,这些文件需要在运行目录中,但我在那里看不到它们。如前所述,尽管在 VS 中一切正常,但似乎 VS 正在从某个地方为我加载这些模块。

0 投票
1 回答
257 浏览

python - pythonnet dll目录访问被拒绝

使用pythonnet从python访问一些dll,无论所有者或权限设置为什么,这些dll都无法访问linux目录。只需收到这样的拒绝访问消息。

拒绝访问路径“/tmp/work”。

似乎它应该工作。有人对此有提示吗?

0 投票
1 回答
282 浏览

c# - PythonNET:C# 函数不会修改传递给它的类实例

我有一个 C# 类

我想传递给一个 C# 函数

我希望在一个实例中MyTask修改该字段SetElseWhereMY_CLASS

在 PythonNet 中,我将函数称为

现在它变得越来越奇怪,至少对我来说:

返回值 x 是一个包含两个条目的元组,一个布尔值和一个类型为 的对象NAMESPACE.MY_CLASS。但这不是我作为第二个参数发送的实例,用 property 说明out

当我检查结果时,我可以看到返回的元组中的对象已被正确修改,但我发送的实例没有被修改。

任何想法为什么?

0 投票
2 回答
992 浏览

python - 如何在 Visual Studio 2017 中为 Python 应用程序启用我自己的 .Net 库的 Intellisense?

我正在使用 pythonnet ( https://github.com/pythonnet/pythonnet ) 并在同一解决方案空间中引用了一个 .Net 库,但它似乎没有提取任何用于 Intellisense 的信息。实际上,VS给出了一个错误:“无法解析”ReferenceLibarary“。这个模块可能缺少智能感知。那么如何将智能感知添加到我的“模块”中?

即使出现错误,脚本仍然可以运行(进出 VS)。我已经设置了完整的 XML,因为还有一个用于 chm 输出的沙堡项目。沙堡项目能否输出缺失的相应内容?