Я написал файл .exe на C#, и он отлично работает, если я запускаю его вручную вручную (дважды щелкнув), но каждый раз, когда я пытался открыть его с помощью python.Ошибка запуска файла python
import os
os.system('"D:\\XX\MyFile.exe"')
Я также попытался это:...
import subprocess
exefile = 'D:\\XX\\MyFile.exe'
subprocess.call([exefile])
Программа происшествий сразу говорит "MyFile.exe перестала работать программа вызвала программу прекращению работы закройте программу ».
Теперь, что меня озадачивает, если я запустил его вручную, но при попытке запустить его через Python это не удастся.
Приложение C# - это просто Updater, который я написал для проверки обновлений для моих pythoncripts. Он имеет .dll, который содержит процедуры обновления и формы, которые загружают (.dat) файл для информации.
Есть ли что-то, что я пропустил?
EDIT:
После некоторых изменений и диагноза, мой EXEFILE теперь начинается, но я понимаю, если он был запущен на Python, то ех не мог сделать следующую функцию в моей 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, он работает отлично.
У кого-нибудь есть идеи? Это из-за прав администратора? Есть ли у python exe права администратора?
Любая причина, по которой вы делаете 'exefile = '% s'% 'D: \\ XX \\ MyFile.exe'' вместо' exefile =' D: \\ XX \\ MyFile.exe''? –
Имея четыре кавычки в первом блоке кода, мне кажется странным. Вы пробовали 'os.system (« D: \\ XX \ MyFile.exe »)' вместо этого? – Kevin
Я думаю, что 'os.system (r'D: \ XX \ MyFile.exe ')' лучше –