gpt4 book ai didi

c# - 将python模块转换成DLL文件

转载 作者:太空狗 更新时间:2023-10-30 00:16:57 28 4
gpt4 key购买 nike

我正在 .NET Framework 上使用 WPF 构建 GUI。我想使用 C# 运行 python 脚本(它使用 numpy、scipy 等模块)。现在,我有两个选择。

  1. Process p = new Process(); //通过传递必要的参数,如“python.exe”和“filename.py”
  2. 使用 IronPython

使用 Method#1 非常简单,但如果我分发此应用程序,那么我的最终用户必须在我的应用程序中指定的路径中拥有这些 python 模块。使用 Method#2 我遇到了这些 python 模块的问题,因为它们没有随 IronPython 一起提供,我需要这些模块的 DLL 文件。那么有什么办法可以将numpy、scipy等Python模块转换成DLL文件吗?

最佳答案

您可以使用 clr.CompileModules 将 python 文件转换为 dll 文件。您可以通过执行以下操作将所有文件添加到单个 dll 中:

from System import IO
from System.IO.Path import Combine

def walk(folder):
for file in IO.Directory.GetFiles(folder):
yield file
for folder in IO.Directory.GetDirectories(folder):
for file in walk(folder): yield file

folder = IO.Path.GetDirectoryName(__file__)
all_files = list(walk(Combine(folder, 'moduleName')))

import clr
clr.CompileModules(Combine(folder, "myDll.dll"), *all_files)

然后您可以通过执行以下操作来添加对您的 dll 的引用:

import clr
import sys

sys.path.append(r"C:\Path\To\Dll")
clr.AddReference("myDll.dll")

但是我不知道如何访问该 dll 中的函数。根据this ,您可以通过执行 import moduleName 导入它。但这对我不起作用。

来源:[add files to single dll] [reference dll]

关于c# - 将python模块转换成DLL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com