Я только начал с Python. Когда я выполняю файл скрипта python в Windows, окно вывода появляется, но мгновенно исчезает. Мне нужно, чтобы остаться там, чтобы я мог проанализировать свои результаты. Как я могу держать это открытым?
Запоздалый +1000. Я использую python в качестве обучающего языка для друга, который использует Windows, и я не мог поверить, насколько сложно (по крайней мере, на основе существующей документации) добраться до места, где мы могли бы запустить скрипт и посмотреть результат.
просто перетащите ваш скрипт в окно cmd
Вы могли бы подумать, что окно вывода должно оставаться открытым по умолчанию. Это происходит при запуске Python в Mac OS. Очень расстраивает
Я собираюсь связать еще один вопрос: оставьте консоль Windows открытой после ошибки Python с этим (на который я отправил ответ для отладки с помощью сценариев перетаскивания и
У вас есть несколько вариантов:
-
Запустите программу с уже открытого терминала. Откройте командную строку и введите:
Условие в одну строку на python (питон) #short
python myscript.py
raw_input()
+1 к пункту 3. Я использую Scite в качестве редактора Python, и он просто сохраняет вывод в собственном окне вывода. Это действительно полезно, потому что вы можете увидеть результаты более чем одного запуска в одном окне.
Я могу увидеть вывод, запустив его с уже открытого терминала. Но мне нужно дать полный адрес скрипта в команде python? Можно ли этого избежать? Когда я использую метод raw_input (), он выдает мне NameError: имя ‘raw_input’ не определено. Можете ли вы предложить редактор, который автоматически останавливается после выполнения?
cmd /k это типичный способ открыть любое консольное приложение (не только Python) с консольным окном, которое останется после закрытия приложения. Самый простой способ сделать это — нажать Win + R, набрать, cmd /k а затем перетащить нужный сценарий в диалоговое окно «Выполнить».
Фантастический ответ. Ты должен был это получить.
Просто для команды python os.system вы должны выполнить os.system («cmd / k» + myAppPath + «» + myFlagsString)
cmd /k только для Windows. Я не могу помочь с альтернативой Mac, извините.
Нужно ли перетаскивать скрипт, включая саму команду Python? Извините, можно привести пример? Я новый, очень новый для Python под Windows.
Этот ответ был самым простым и делает именно то, что мне нужно в среде Windows. После запуска программы окно терминала остается открытым.
Запустите скрипт из уже открытого окна cmd или в конце скрипта добавьте что-то вроде этого в Python 2:
raw_input(«Press enter to exit ;)»)
input(«Press enter to exit ;)»)
«Любая клавиша» не будет работать, будет работать только Enter (или Ctrl + D, в зависимости от того, где мы находимся).
Если вы думаете об этом, это довольно глубоко, что только «войти» позволит вам «выйти» .
знать, что терминал закроется независимо, если произойдет исключение
Чтобы ваше окно было открыто в случае исключения (пока при печати исключения)
Конвертируем .py в .exe | PyInstaller
Python 2
if __name__ == ‘__main__’: try: ## your code, typically one function call except Exception: import sys print sys.exc_info()[0] import traceback print traceback.format_exc() print «Press Enter to continue . » raw_input()
Чтобы окно оставалось открытым в любом случае:
if __name__ == ‘__main__’: try: ## your code, typically one function call except Exception: import sys print sys.exc_info()[0] import traceback print traceback.format_exc() finally: print «Press Enter to continue . » raw_input()
Python 3
Для Python3 вам придется использовать input() вместо raw_input() и, конечно, адаптировать print операторы.
if __name__ == ‘__main__’: try: ## your code, typically one function call except BaseException: import sys print(sys.exc_info()[0]) import traceback print(traceback.format_exc()) print(«Press Enter to continue . «) input()
Чтобы окно оставалось открытым в любом случае:
if __name__ == ‘__main__’: try: ## your code, typically one function call except BaseException: import sys print(sys.exc_info()[0]) import traceback print(traceback.format_exc()) finally: print(«Press Enter to continue . «) input()
Вы можете объединить ответы раньше: (для пользователя Notepad ++)
нажмите F5 для запуска текущего скрипта и введите команду:
cmd /k python -i «$(FULL_CURRENT_PATH)»
Таким образом, вы останетесь в интерактивном режиме после выполнения скрипта Python для Notepad ++ и сможете поиграть со своими переменными и так далее 🙂
Это отличный пакетный файл Windows, если вы измените $ (FULL_CURRENT_PATH) на имя пути Windows.
Я обнаружил, что гораздо проще получить плагин PyNPP и назначить ярлык для его запуска (не забудьте отключить предыдущий ярлык F5)
Создайте командный файл Windows с этими 2 строками:
python your-program.py pause
Или import os os.system(«pause») в конце .py файла
Это единственный ответ, который даже отдаленно правильный. Ответы , которые требуют повреждая каждый сценарий Python вы будете когда — либо работать с raw_input или другим мусором просто неправильны. Либо введите вашу команду в командной строке так, как ожидает вас Python, либо используйте пакетный язык , предоставляемый MS-DOS именно для этой цели с августа 1981 года .
еще лучше, используйте python %* и установите его как одну из программ «открыть с помощью», чтобы вы могли либо щелкнуть правой кнопкой мыши по файлу .py, чтобы открыть окно приостановки, либо я также поместил его в папку Anaconda3 (в PATH) как py_pause.bat, так что теперь Я могу бежать py_pause my-prog.py all my args от линии cmd
В Python 2 вы можете сделать это с помощью: raw_input ()
>>print(«Hello World!») >>raw_input(‘Waiting a key. ‘)
В Python 3 вы можете сделать это с помощью: input ()
>>print(«Hello world!») >>input(‘Waiting a key. ‘)
Кроме того, вы можете сделать это с time.sleep (время)
>>import time >>print(«The program will close in 5 seconds») >>time.sleep(5)
Используя atexit , вы можете приостановить программу сразу после ее выхода. Если причиной выхода является ошибка / исключение, оно будет приостановлено после печати трассировки стека.
import atexit # Python 2 should use `raw_input` instead of `input` atexit.register(input, ‘Press Enter to continue. ‘)
В моей программе я помещаю вызов atexit.register в except предложение, чтобы оно приостанавливалось, только если что-то пошло не так.
if __name__ == «__main__»: try: something_that_may_fail() except: # Register the pause. import atexit atexit.register(input, ‘Press Enter to continue. ‘) raise # Reraise the exception.
У меня была похожая проблема. В Notepad ++ я использовал команду: она C:Python27python.exe «$(FULL_CURRENT_PATH)» закрывала окно cmd сразу после завершения кода.
Теперь я использую cmd /k c:Python27python.exe «$(FULL_CURRENT_PATH)» который держит окно cmd открытым.
Вы можете добавить «; C: Python27» в конец переменной среды Path. Таким образом, его можно сократить до ‘cmd / k python -i «$ (FULL_CURRENT_PATH)»‘ — именно то, что сказано в ответе выше, плюс полезный -i.
input(‘Press Enter to Exit. ‘)
Чтобы просто держать окно открытым, я согласен с Anurag, и это то, что я сделал, чтобы мои окна были открыты для коротких небольших программ типа расчета.
Это просто показало бы курсор без текста:
raw_input()
Этот следующий пример даст вам четкое сообщение о том, что программа выполнена и не ожидает другого ввода в программе:
print(‘You have reached the end and the «raw_input()» function is keeping the window open’) raw_input()
Заметка!
(1) В питоне 3 нет raw_input () , только input () .
(2) Используйте одинарные кавычки для обозначения строки; в противном случае, если вы набираете удваивается вокруг чего-либо, например «raw_input ()», он будет думать, что это функция, переменная и т. д., а не текст.
В следующем примере я использую двойные кавычки, и они не будут работать, потому что он думает, что между кавычками и «функцией» есть разрыв, даже когда вы читаете это, ваш собственный разум может в этом разобраться:
print(«You have reached the end and the «input()» function is keeping the window open») input()
Надеюсь, это поможет тем, кто только начинает, и до сих пор не понял, как думает компьютер. Это может занять некоторое время. : О)
Источник: qastack.ru
Python — при выполнении программы через CMD она просто закрывается после второго ввода
Привет, извините за задание стольких вопросов. В основном, я поставил свой код выше и выполнил код, дважды щелкнув файл.py, который запускает его из CMD, после запроса с сообщением: «Пожалуйста, введите операцию, которую вы хотите выполнить, +, -, *,/: » CMD просто случайно закрывается. Это также случилось со всеми моими программами Python. Любые идеи почему? Это связано с моим ужасным кодом? Все ответы очень ценятся 🙂
monkey334 13 сен. 2013, в 22:54
Поделиться
Вы уверены, что не используете python2? Попробуйте напечатать sys.version_info в начале main . На input python2 возникнет исключение, когда пользователь вставит любой из */-+ , после чего программа завершится, а CMD закроется (и у вас нет времени, чтобы увидеть ошибку).
Bakuriu 13 сен. 2013, в 20:14
Источник: overcoder.net
График, созданный matplotlib.plot.show, закрывается автоматически после завершения сценария python через командную строку
Я хочу построить график и сохранить его, даже если сценарий закончен. Но это не удалось после того, как я попробовал много раз.
После завершения выполнения скрипта график, созданный методом show(), будет закрыт одновременно.
import matplotlib.pyplot as plt plt.scatter([0], [1]) plt.draw() plt.show(block=False) for i in range(10): plt.scatter([i], [i+1]) plt.draw() plt.pause(0.001)
Моя версия ниже:
[email protected]:~/$ sudo pip freeze | grep matplotlib matplotlib==2.2.3 [email protected]:~/$ sudo pip -V pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
I only execute script in Ubuntu ex: [email protected]: python xxx.py Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Codename: xenial
Может кто-нибудь мне помочь? Я просто хочу сделать как Matlab, который не закроет построенный график, даже если скрипт завершится.
Источник: ask-ubuntu.ru