我想在Windows上使用conda环境(dlwin36)运行一个GPU加速的Python脚本。
我正在尝试激活dlwin36并执行一个脚本:
1)激活dlwin36
2)设置KERAS_BACKEND为tensorflow
3)python myscript.py
如果我在我的机器上手动打开cmd并写入:“activate dlwin36”,它能够正常工作。
但是当我尝试从C#打开cmd时,我收到以下消息:
"activate不被识别为内部或外部命令,可执行程序或批处理文件。"
我尝试使用以下方法:
命令链接:
var start = new ProcessStartInfo();
start.FileName = "cmd.exe";
start.Arguments = "/c activate dlwin36&&set KERAS_BACKEND=tensorflow&&python myscript.py";
Process.Start(start).WaitForExit();
我已经测试了几种UseShellExecute、LoadUserProfile和WorkingDirectory的变化。
重定向标准输入:
var commandsList = new List<string>();
commandsList.Add("activate dlwin36");
commandsList.Add("set KERAS_BACKEND=tensorflow");
commandsList.Add("python myscript.py");
var start = new ProcessStartInfo();
start.FileName = "cmd.exe";
start.UseShellExecute = false;
start.RedirectStandardInput = true;
var proc = Process.Start(start);
commandsList.ForEach(command => proc.StandardInput.WriteLine(command));
(我已经测试了几种LoadUserProfile和WorkingDirectory的变化)
在两种情况下,我得到了相同的错误。
看起来手动打开cmd和从c#打开它之间存在差异。