从C运行Python自动化脚本#

从C运行Python自动化脚本#,python,c#,automation,ironpython,pyautogui,Python,C#,Automation,Ironpython,Pyautogui,首先,, 已咨询: 虽然其中一些方法有些帮助,但我发现我的案例在如何解决它方面特别令人困惑。我创建了一个标准的.NET核心项目: using System; using System.Windows.Forms; using IronPython.Hosting; using Microsoft.Scripting.Hosting; namespace automation1 { public partial class Form1 : Form {

首先,, 已咨询:

  • 虽然其中一些方法有些帮助,但我发现我的案例在如何解决它方面特别令人困惑。我创建了一个标准的.NET核心项目:

    using System;
    using System.Windows.Forms;
    using IronPython.Hosting;
    using Microsoft.Scripting.Hosting;
    
    namespace automation1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                ScriptEngine engine = Python.CreateEngine();
                engine.ExecuteFile(@"C:\Users\knoxb\Desktop\automation1.py");
            }
        }
    }
    
    单击按钮后,我想执行automation1.py:

    import pyautogui as p
    
    p.moveTo(300,300,2)
    
    但是,我收到以下例外情况:

    虽然我已经通过NuGet安装了IronPython,并验证是否安装了pyautogui:

    我发现,经过数小时的研究,上述问题或文件没有任何解决方案,我需要发布此调查


    谢谢。

    我还没有运行Python脚本,但我猜,使用C#,我认为
    pyautogui
    是一个库,它(1)必须安装在机器中,(2)必须手动或自动导入(注入)脚本引擎。对于(1),请尝试
    pip安装pyautogui
    。对于(2),您还对这5个参考有点困惑,它们用于控制
    python.exe
    运行已编译的python文件,而不是动态编译。同时,似乎是
    ScriptEngine
    做的。感谢您的回复。我希望通过“注入”,它会像:engine.ImportModule(@“pyautogui”);这仍然是一个例外。不过,感谢您提供的链接,我将通读这篇文章,并希望找到一个解决方案。至于执行与编译,我有一个工作模型,通过使用python.exe打开一个进程来执行.py文件,但是,我正在寻找更多的“瞬时”从C#执行python脚本的方法,没有10秒的延迟。是的,我更喜欢运行时编译,因为它带来了许多好处:可移植性和运行在任何地方,动态使用那里的输出,不需要在每次更新时重建C#应用程序,不受真实环境的影响,。。。