如何将文件路径从 C# 应用程序传递给 Python 脚本并将处理后的文件路径返回给 C#?在 Visual Studio 中

问题描述 投票:0回答:1

这个问题与 Visual Studio 2019 中的引用或其他类似功能有关。我的 C# 和 Python 项目都是单个解决方案的一部分

我正在使用 WPF 开发一个 C# 应用程序,它需要在后端运行 Python 脚本以对用户选择的文件执行特定操作。由于对 pandas 的严格依赖,我不能使用 IronPython,并且我想避免使用 PYQt 以避免许可证费用,因为我打算出售该程序。

我创建了两个项目:一个用C#,另一个用Python。 C# 应用程序将有一个带有用于不同任务的按钮的 GUI。单击按钮时,用户可以选择一个文件,C# 应用程序应将文件路径作为参数传递给 Python 脚本。 Python 脚本将处理文件并将处理后的文件路径返回给 C# 应用程序。最后,C# 应用程序会提示用户保存生成的文件。

我正在寻找一种方法来完成两个项目之间的这种沟通。如何将文件路径从 C# 应用程序传递到 Python 脚本并在 C# 应用程序中检索处理后的文件路径?处理两个项目之间的通信以确保高效可靠运行的最佳方式是什么?

请提供示例代码或相关资源,以帮助我在我的 C# 应用程序中实现此功能。

我尝试了一些东西,比如 IronPython 和 PythonNet。但我觉得通过 C# GUI 运行 Python 项目是最好的选择。我不能说网格中的下一个项目有多复杂。我可能需要第三种语言。

python c# visual-studio visual-studio-2019
1个回答
0
投票

为了将 Python 项目集成到 C# 项目中,我将 Python 代码移至同一项目目录并设置路径以访问所需文件。我使用像

string columnsFilePath = Path.Combine("./columns.txt"); 
这样的路径,并在使用 C# 构建 exe 后手动将 Python 嵌入文件和其他所需文件放入“Release”目录。

使用嵌入式 Python 增强了应用程序的功能,使我们能够利用 Python 和 C# 的优势。将 Python embedded 添加到项目文件夹并设置路径的过程非常简单,涉及将 Python 代码和库复制到项目目录并指定访问所需文件的路径。

为了使用 C# 构建 exe,我使用了适当的工具和库,过程很简单。但是,我必须手动将 Python embedded、images 和 columns.txt 文件复制到发布文件夹,因为它们不包含在自动构建过程中。

总的来说,使用嵌入式 Python 将 Python 集成到 C# 项目中使我们能够增强应用程序的功能并利用两种语言的优势。

将包安装到 Python Embedded 中的步骤:

  1. 从谷歌下载
    get-pip.py
  2. 解压 Python Embedded 并将
    get-pip.py
    粘贴到 Python Embedded 文件夹中。
  3. python310._pth
  4. 中取消注释导入
  5. 奔跑
    ./path/to/python.exe get-pip.py
    .
  6. 奔跑
    ./path/to/python.exe pip install package_name
    .

Python Embedded 链接

© www.soinside.com 2019 - 2024. All rights reserved.