如何修复“在”错误中找不到“__main__”模块?

How to fix "can't find '__main__' module in '' error?

我正在从 Windows 服务调用我的 python 文件

代码本身运行良好

服务也很好

但是当我从 windows 服务调用 python 代码时,我得到了这个错误

我的python代码是这样的

import pyodbc 
import pandas as pd

ConnectionString = "Driver={SQL Server};Server=XYZ;Database=ABCD;Trusted_Connection=yes;"

conn = pyodbc.connect(ConnectionString)
df_results = pd.read_sql("EXEC TestService" , conn)

他是我在 c#windows 中的服务

       Log("In cmd", true);
        try
        {
            ProcessStartInfo psi = new ProcessStartInfo();
            psi.FileName = PythonPath;

            string Script = PythonSuggestedDiagnosesFile;

            psi.Arguments = $"\"{Script}\"";

            psi.UseShellExecute = false;
            psi.CreateNoWindow = true;
            psi.RedirectStandardOutput = true;
            psi.RedirectStandardError = true;

            string Errors = "";
            string Results = "";

            using (var process = Process.Start(psi))
            {
                Errors = process.StandardError.ReadToEnd();
                Results = process.StandardOutput.ReadToEnd();
            }

            Log("In cmd : " + "Errors:\n" + Errors + "\n\nResults:\n" + Results);
        }
        catch (Exception ex)
        {
            Log("ERROR (cmd) : " + ex.ToString());

        }

我得到的错误是这个

In cmd : Errors:
C:\Users\MyID\AppData\Local\Programs\Python\Python310\python.exe: can't find '__main__' module in ''


Results:

如何解决?

您应该将正确的 WorkingDirectory 传递给您的 ProcessStartInfo。喜欢 this.