makliu 发表于 2023-8-18 11:36:39

C# 想调用 python 文件

在C#中想调用python 文件 ,    使用了IronPython 库, 但是如果 遇到 python文件 中 引用 了第三方库时,会报错;


各路大神有没有更好的解决办法 ,    【python不想打包成exe,    C# 程序 最终会在没有python环境的电脑 上运行;】

isdkz 发表于 2023-8-18 11:36:59

你可以尝试使用Python的subprocess模块来调用Python文件。subprocess模块允许你在C#中启动一个新的进程,并在该进程中运行Python脚本。这样你就可以避免使用IronPython库,从而解决第三方库引用的问题。

下面是一个示例代码,展示了如何使用subprocess模块在C#中调用Python文件:

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
      ProcessStartInfo start = new ProcessStartInfo();
      start.FileName = "python"; // Python解释器的路径
      start.Arguments = "path_to_your_python_script.py"; // Python脚本的路径
      start.UseShellExecute = false;
      start.RedirectStandardOutput = true;

      using (Process process = Process.Start(start))
      {
            using (StreamReader reader = process.StandardOutput)
            {
                string result = reader.ReadToEnd();
                Console.WriteLine(result);
            }
      }
    }
}


在这个示例中,你需要将 python 替换为你的Python解释器的路径,并将 path_to_your_python_script.py 替换为你的Python脚本的路径。

这样,你就可以在没有Python环境的电脑上运行C#程序,并调用Python文件了。注意,你需要确保目标电脑上已经安装了Python解释器。

makliu 发表于 2023-8-18 12:18:56

isdkz 发表于 2023-8-18 11:36
你可以尝试使用Python的subprocess模块来调用Python文件。subprocess模块允许你在C#中启动一个新的进程,并 ...

如果 C# 最后打包成exe 发给 没有python环境 的电脑 ,能正常运行吗

琅琊王朝 发表于 2023-8-18 13:37:20

有以下几种解决办法:

1.使用Python的subprocess模块:你可以使用C#的Process.Start()方法来调用Python的命令行界面,并通过命令行参数执行Python脚本。这种方式可以确保使用Python的完整环境,包括第三方库的支持。示例代码如下:
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
      string pythonExePath = @"C:\Python\python.exe";
      string pythonScriptPath = @"C:\path\to\your\python\script.py";

      Process process = new Process();
      process.StartInfo.FileName = pythonExePath;
      process.StartInfo.Arguments = pythonScriptPath;
      process.Start();
      process.WaitForExit();
    }
}

2.使用Anaconda或Miniconda:在没有Python环境的电脑上,你可以安装Anaconda或Miniconda,并将Python环境和所需的第三方库打包成一个独立的虚拟环境。然后,在C#程序中调用该虚拟环境中的Python解释器来执行Python脚本。


3.将Python代码转换为C#代码:如果你不希望依赖Python环境或打包成exe文件,可以考虑将Python代码转换为C#代码,并使用C#编译器将其编译为可执行文件。这样可以完全摆脱Python环境的依赖。
以上是几种常见的解决办法,你可以根据实际情况选择适合的方法来调用Python文件并在没有Python环境的电脑上运行C#程序。

ba21 发表于 2023-8-18 19:18:41

python 能实现的 c#还不能实现?非得这么搞下。

makliu 发表于 2023-8-22 09:29:27

ba21 发表于 2023-8-18 19:18
python 能实现的 c#还不能实现?非得这么搞下。

C# 不太会

ba21 发表于 2023-8-22 09:39:57

makliu 发表于 2023-8-22 09:29
C# 不太会

查资料,学下。也这比来的好吧。
页: [1]
查看完整版本: C# 想调用 python 文件