如何在C#应用部署中使用Pythonnet?它仍然需要在任何用户机器上本地安装python

mxg2im7a  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(131)
    • 背景**

我正在为我的C#应用寻找类似IronPython的东西,但是支持numpy包。我决定尝试一下Pythonnet。只要我在安装了Python的机器上,一切都很好。但是当我部署我的应用,并试图在另一台机器上启动它时,它崩溃了。我的想法是,Pythonnet没有部署在生成的exe中。这意味着它对我来说毫无用处。

    • 这里是MWE:**
var input1 = new double[,] { { 15 }, { 274.5 } };
Runtime.PythonDLL = @"C:\pythonx86.3.11.2\tools\python311.dll";
PythonEngine.Initialize();
dynamic os = Py.Import("os");
dynamic sys = Py.Import("sys");
sys.path.append(os.getcwd());
dynamic test = Py.Import("Test");
int r1 = test.Test_fun(input1);
PythonEngine.Shutdown();
    • 还有www.example.comTest.py
import numpy as np
import numpy.matlib

def Test_fun(x1):

  Q = np.size(x1,1) # samples
  
return Q
    • 问题:**

有没有办法让部署的. exe在没有安装python的机器上工作?

oug3syen

oug3syen1#

你可以将Python捆绑到你的应用中,只需复制过来,无需安装。

相关问题