2015-07-06 2 views
1

Когда я попытался очистить оболочку python с помощью следующих команд python.В интерпретаторе python os.system() всегда возвращает -1

import os 
os.system("cls") 

Он всегда возвращался -1. Затем я попробовал os.system() для разных входов. как,

os.system("cd ..") 
os.system("mkdir hello") 

Но он не все время и возвращается -1. Почему это так?

+1

Вместо этого вы можете попробовать 'subprocess': https://docs.python.org/2/library/subprocess.html#replacing-os-system – Blorgbeard

+0

после импорта модуля подпроцесса, я попробовал как subprocess.call (" cls " , shell = True). Но он терпит неудачу, с ошибкой «WindowsError: [Ошибка 2] Система не может найти указанный файл». –

ответ

1

Я нашел решение этой проблемы. Я отправляю решение, если кто-то сталкивается с той же проблемой в будущем.

В моем случае переменная среды ComSpec была автоматически изменена с помощью обновления сервера Microsoft SQL. Я изменил его на предыдущее значение, которое было «% SystemRoot% \ system32 \ cmd.exe». После изменения этой переменной среды, выхода из системы и входа снова.

+0

Нечетный - на что он был изменен? – Blorgbeard

+0

Он был изменен на «% SystemRoot% \ system32 \ cmd.exe;% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0;" Я не мог понять, почему обновление SQL Server изменило эту переменную. У меня две системы. В другой системе все работает отлично. Поэтому я сравнил переменную окружения обеих систем, и тем временем я заметил обновленное значение переменной среды CompSec. Поэтому я изменил его на «% SystemRoot% \ system32 \ cmd.exe;», и он сработал. :) –

Смежные вопросы