C#에서 .exe 파일을 작성했으며 수작업으로 직접 실행 (두 번 클릭)하면 파이썬으로 열려고 할 때마다 정상적으로 작동합니다. ...Python 실행 exe 파일 오류
import subprocess
exefile = 'D:\\XX\\MyFile.exe'
subprocess.call([exefile])
이 프로그램은 즉시 MyFile.exe의 작동이 중지되었습니다 "라는 충돌하는 프로그램은 프로그램을 닫으십시오 프로그램이 올바르게 작동하지 발생 :
import os
os.system('"D:\\XX\MyFile.exe"')
나는이 시도했다 ".
내가 당황한 것은 수동으로 실행하면 작동하지만 파이썬을 통해 실행하려고 할 때 실패합니다.
C# 응용 프로그램은 단순히 pythonscript에 대한 업데이트를 확인하기 위해 작성한 Updater입니다. 업데이트 루틴 및 정보 (.dat) 파일을로드하는 폼이 들어있는 .dll이 있습니다.
내가 빠뜨릴만한 것이 있나요?
는편집 : 일부 수정 및 진단시
, 내 EXEFILE 이제 시작하지만 나는 그것이 파이썬에 의해 시작된 경우, exe를 내 C# 응용 프로그램에서 다음과 같은 기능을 할 수 없었다 알고 있습니다.
private UpdateSaveFile DecodeSaveFile(string LocalUpdateFile)
{
FileStream localFileStream = null;
BinaryFormatter decoder = null;
try
{
localFileStream = File.Open(LocalUpdateFile, FileMode.Open, FileAccess.Read);
decoder = new BinaryFormatter();
return (UpdateSaveFile)decoder.Deserialize(localFileStream);
}
catch (Exception e)
{
throw new InvalidDataException("The local update info file is corrupt!", e);
}
finally
{
if (localFileStream != null)
localFileStream.Dispose();
}
}
이제 파이썬에서 exefile을 실행할 때마다 "로컬 업데이트 정보 파일이 손상되었습니다"라는 메시지가 표시됩니다. 하지만 수동으로 exefile (python없이)/cmd 프롬프트를 실행하면 완벽하게 정상적으로 작동합니다.
누구든지 아이디어가 있으십니까? 그것은 관리자 권한 때문입니까? 파이썬은 exe를 시작 했는가 관리자 권한이 있습니까?
'exefile ='D : \\ XX \\ MyFile.exe'' 대신'exefile = '% s'% 'D : \\ XX \\ MyFile.exe''를하는 이유는 무엇입니까? –
첫 번째 코드 블록에 4 개의 따옴표가 있으면 이상하게 보입니다. 대신'os.system ("D : \\ XX \ MyFile.exe")'를 사용해 보셨습니까? – Kevin
'os.system (r'D : \ XX \ MyFile.exe ')'가 더 좋다. –