Как запустить несколько скриптов python одновременно windows

Обновлено: 02.07.2024

как я могу запустить несколько скриптов Python? В данный момент я бегу один, как так python script1.py .

Я пробовал python script1.py script2.py и это не работает: запускается только первый сценарий. Кроме того, я пробовал использовать один такой файл;

однако это тоже не работает.

это весь сценарий. Он будет запускать два скрипта Python одновременно.

Python может сделать то же самое, но для этого потребуется гораздо больше ввода и это плохой выбор для проблемы.

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

самое простое решение для одновременного запуска двух процессов Python-запустить их из файла bash и сказать каждому процессу, чтобы перейти в фоновый режим с помощью & оператор Шелл.

для более контролируемого способа запуска многих процессов параллельно, посмотрите в руководитель проекта, или используйте модуль многопроцессорной для оркестровки изнутри Python.

Я работаю в Windows 7 С Python IDLE. У меня две программы,

Я открываю IDLE, а затем открываю файл progA.py - . Я запускаю программу, и при появлении запроса на ввод я ввожу "b" + <Enter> а то "c" + <Enter>

Я смотрю на это окно:

затем я возвращаюсь к Windows Start и снова открываю IDLE, на этот раз открывая файл progB.py - . Я запускаю программу, и при появлении запроса на ввод я ввожу "x" + <Enter> и затем "y" + <Enter>

Я смотрю на это окно:

теперь две простаивающие программы оболочки Python 3.6.3 работают одновременно, одна оболочка работает с progA, а другая-с progB.

можно использовать Gnu-Parallel для одновременного выполнения команд работает в Windows, Linux / Unix.

parallel . "python script1.py" "python script2.py"

Я делаю это в узел.js (в Windows 10), открыв 2 отдельных экземпляра cmd и запустив каждую программу в каждом экземпляре.

Это имеет то преимущество, что запись на консоль легко видна для каждого скрипта.

Я вижу, что в python можно сделать то же самое: 2 оболочки.

вы можете одновременно запускать несколько экземпляров оболочки IDLE/Python. Поэтому откройте IDLE и запустите код сервера, а затем снова откройте IDLE, который запустит отдельный экземпляр, а затем запустите клиентский код.

попробуйте следующие способы запуска нескольких скриптов python:

Примечание: выполнение нескольких сценариев зависит от чисто подчеркнутой операционной системы, и это не будет одновременным, я был новичком в Python, когда я ответил на него.

Как я могу запустить несколько скриптов Python? В данный момент я запускаю такой как python script1.py .

Я пробовал python script1.py script2.py , и это не работает: запускается только первый скрипт. Кроме того, я попытался использовать один файл, как это;

Однако это тоже не работает.

Вот и весь сценарий. Он будет запускать два скрипта Python одновременно.

Python мог бы сделать то же самое сам, но это заняло бы намного больше времени, и это плохой выбор для рассматриваемой проблемы.

Я думаю, что возможно, что вы используете неправильный подход к решению вашей проблемы, и я хотел бы услышать, к чему вы клоните.

Я должен был сделать это и использовал подпроцесс.

Если вы хотите запустить два скрипта Python параллельно, просто включите следующее в конец скрипта:

На мой взгляд, самым простым способом было бы использовать PyCharm IDE и установить плагин 'multirun'. Я попробовал много решений здесь, но это сработало для меня в конце концов!

Я делаю это в node.js (в Windows 10), открывая 2 отдельных экземпляра cmd и запуская каждую программу в каждом экземпляре.

Это имеет то преимущество, что запись в консоль легко видна для каждого сценария.

Я вижу, что в Python можно сделать то же самое: 2 оболочки.

Вы можете запустить несколько экземпляров оболочки IDLE / Python одновременно. Так что откройте IDLE и запустите код сервера, а затем снова откройте IDLE, который запустит отдельный экземпляр и затем запустит ваш клиентский код.

Я работаю в Windows 7 с Python IDLE. У меня есть две программы,

Я открываю IDLE, а затем открываю файл progA.py. Я запускаю программу, и когда мне предлагают ввести данные, я ввожу "b" + <Enter> , а затем "c" + <Enter>

Я смотрю на это окно:

Затем я возвращаюсь в Windows Start и снова открываю IDLE, на этот раз открывая файл progB.py. Я запускаю программу, и когда мне предлагают ввести данные, я ввожу "x" + <Enter> , а затем "y" + <Enter>

Я смотрю на это окно:

Теперь две программы оболочки IDLE Python 3.6.3 работают одновременно, одна оболочка работает под управлением progA, а другая - под управлением progB.

Самое простое решение для одновременного запуска двух процессов Python - это запустить их из файла bash и указать каждому процессу перейти в фоновый режим с помощью оператора оболочки & .

Для более контролируемого способа параллельного запуска многих процессов перейдите в проект Supervisor или воспользуйтесь модуль многопроцессорной обработки для организации внутри Python.

Вы можете использовать Gnu-Parallel для одновременного запуска команд, работает в Windows, Linux / Unix .




Асинхронное программирование – это вид параллельного программирования, в котором какая-либо единица работы может выполняться отдельно от основного потока выполнения приложения. Когда работа завершается, основной поток получает уведомление о завершении рабочего потока или произошедшей ошибке. У такого подхода есть множество преимуществ, таких как повышение производительности приложений и повышение скорости отклика.


В последние несколько лет асинхронное программирование привлекло к себе пристальное внимание, и на то есть причины. Несмотря на то, что этот вид программирования может быть сложнее традиционного последовательного выполнения, он гораздо более эффективен.

Асинхронность – это одна из основных причин популярности выбора Node.js для реализации бэкенда. Большое количество кода, который мы пишем, особенно в приложениях с тяжелым вводом-выводом, таком как на веб-сайтах, зависит от внешних ресурсов. В нем может оказаться все, что угодно, от удаленного вызова базы данных до POST-запросов в REST-сервис. Как только вы отправите запрос в один из этих ресурсов, ваш код будет просто ожидать ответа. С асинхронным программированием вы позволяете своему коду обрабатывать другие задачи, пока ждете ответа от ресурсов.

Как Python умудряется делать несколько вещей одновременно?


1. Множественные процессы

Самый очевидный способ – это использование нескольких процессов. Из терминала вы можете запустить свой скрипт два, три, четыре, десять раз, и все скрипты будут выполняться независимо и одновременно. Операционная система сама позаботится о распределении ресурсов процессора между всеми экземплярами. В качестве альтернативы вы можете воспользоваться библиотекой multiprocessing, которая умеет порождать несколько процессов, как показано в примере ниже.


2. Множественные потоки

Еще один способ запустить несколько работ параллельно – это использовать потоки. Поток – это очередь выполнения, которая очень похожа на процесс, однако в одном процессе вы можете иметь несколько потоков, и у всех них будет общий доступ к ресурсам. Однако из-за этого написать код потока будет сложно. Аналогично, все тяжелую работу по выделению памяти процессора сделает операционная система, но глобальная блокировка интерпретатора (GIL) позволит только одному потоку Python запускаться в одну единицу времени, даже если у вас есть многопоточный код. Так GIL на CPython предотвращает многоядерную конкурентность. То есть вы насильно можете запуститься только на одном ядре, даже если у вас их два, четыре или больше.


3. Корутины и yield :

Корутины – это обобщение подпрограмм. Они используются для кооперативной многозадачности, когда процесс добровольно отдает контроль ( yield ) с какой-то периодичностью или в периоды ожидания, чтобы позволить нескольким приложениям работать одновременно. Корутины похожи на генераторы, но с дополнительными методами и небольшими изменениями в том, как мы используем оператор yield. Генераторы производят данные для итерации, в то время как корутины могут еще и потреблять данные.


4. Асинхронное программирование

Четвертый способ – это асинхронное программирование, в котором не участвует операционная система. Со стороны операционной системы у вас останется один процесс, в котором будет всего один поток, но вы все еще сможете выполнять одновременно несколько задач. Так в чем тут фокус?

Asyncio – модуль асинхронного программирования, который был представлен в Python 3.4. Он предназначен для использования корутин и future для упрощения написания асинхронного кода и делает его почти таким же читаемым, как синхронный код, из-за отсутствия callback-ов.

Asyncio использует разные конструкции: event loop , корутины и future .

  • event loop управляет и распределяет выполнение различных задач. Он регистрирует их и обрабатывает распределение потока управления между ними. (о которых мы говорили выше) – это специальные функции, работа которых схожа с работой генераторов в Python, с помощью await они возвращают поток управления обратно в event loop. Запуск корутины должен быть запланирован в event loop. Запланированные корутины будут обернуты в Tasks, что является типом Future.
  • Future отражает результат таска, который может или не может быть выполнен. Результатом может быть exception.

Переключение контекста в asyncio представляет собой event loop , который передает поток управления от одной корутины к другой.

Использование Redis и Redis Queue RQ

В примере ниже мы добавили в очередь простую функцию count_words_at_url с помощью Redis.

Заключение

В качестве примера возьмем шахматную выставку, где один из лучших шахматистов соревнуется с большим количеством людей. У нас есть 24 игры и 24 человека, с которыми можно сыграть, и, если шахматист будет играть с ними синхронно, это займет не менее 12 часов (при условии, что средняя игра занимает 30 ходов, шахматист продумывает ход в течение 5 секунд, а противник – примерно 55 секунд.) Однако в асинхронном режиме шахматист сможет делать ход и оставлять противнику время на раздумья, тем временем переходя к следующему противнику и деля ход. Таким образом, сделать ход во всех 24 играх можно за 2 минуты, и выиграны они все могут быть всего за один час.

Это и подразумевается, когда говорят о том, что асинхронность ускоряет работу. О такой быстроте идет речь. Хороший шахматист не начинает играть в шахматы быстрее, просто время более оптимизировано, и оно не тратится впустую на ожидание. Так это работает.

По этой аналогии шахматист будет процессором, а основная идея будет заключаться в том, чтобы процессор простаивал как можно меньше времени. Речь о том, чтобы у него всегда было занятие.

На практике асинхронность определяется как стиль параллельного программирования, в котором одни задачи освобождают процессор в периоды ожидания, чтобы другие задачи могли им воспользоваться. В Python есть несколько способов достижения параллелизма, отвечающих вашим требованиям, потоку кода, обработке данных, архитектуре и вариантам использования, и вы можете выбрать любой из них.


Как я могу запустить несколько скриптов Python? На данный момент у меня такой .

Я пробовал , и это не работает: запускается только первый скрипт. Кроме того, я пробовал использовать один такой файл;

Однако это тоже не работает.

Это весь сценарий. Он будет запускать два сценария Python одновременно.

Python мог бы сделать то же самое, но для этого потребовалось бы намного больше набора текста, и это плохой выбор для решения данной проблемы.

Я думаю, что возможно, что вы принимаете неправильный подход к решению своей проблемы, и мне хотелось бы услышать, к чему вы клоните.

  • 6 просто хотел сказать, что ценю последнюю строчку, желаю, чтобы мы узнали больше
  • что делает ?
  • 2 Он выполняет то, что было запрошено OP - одновременно запускает два сценария python.
  • Это лучший способ запустить несколько скриптов Python? Я имею в виду, должен ли я писать скрипт Python для запуска другого скрипта Python или напрямую писать скрипты оболочки? Просто хотели узнать лучшие практики?
  • Я думаю, это будет полностью зависеть от конкретных обстоятельств решаемой вами проблемы.

Самым простым решением для одновременного запуска двух процессов Python является их запуск из файла bash и указание каждому процессу перейти в фоновый режим с помощью оператора оболочки .

Для более контролируемого способа параллельного запуска множества процессов загляните в проект Supervisor или используйте модуль многопроцессорности для оркестровки изнутри Python.

  • 17 Вероятно, я разместил это до или сразу после принятого ответа. Я мог бы перевернуть вопрос и спросить, почему я не получил никаких голосов.
  • 1 Интересно, что ваш ответ, кажется, был опубликован до принятого ответа. Разница в три минуты.
  • @logc, +1, в этом случае два экземпляра Python полностью изолированы, верно? Если кто-то хочет сравнить вывод с выводом , знаете ли вы лучший метод?

Я должен был это сделать и использовал подпроцесс.

Я делаю это в node.js (в Windows 10), открывая 2 отдельных экземпляра cmd и запуская каждую программу в каждом экземпляре.

Это имеет то преимущество, что запись в консоль легко видна для каждого скрипта.

Я вижу, что в python можно сделать то же самое: 2 оболочки.

Вы можете запускать несколько экземпляров оболочки IDLE / Python одновременно. Итак, откройте IDLE и запустите код сервера, а затем снова откройте IDLE, который запустит отдельный экземпляр, а затем запустит ваш клиентский код.

Я работаю в Windows 7 с Python IDLE. У меня две программы,

Я открываю IDLE, а затем открываю файл progA.py. Я запускаю программу и при запросе ввода ввожу "b" + , а затем "с" +

Я смотрю в это окно:

Затем я возвращаюсь в Windows Start и снова открываю IDLE, на этот раз открывая файл progB.py. Я запускаю программу и при запросе ввода ввожу "x" + , а затем "y" +

Я смотрю в это окно:

Теперь две программы оболочки IDLE Python 3.6.3 работают одновременно, одна оболочка запускает progA, а другая - progB.

Вы можете использовать Gnu-Parallel для одновременного выполнения команд, работает в Windows, Linux / Unix.

На мой взгляд, самым простым способом было бы использовать PyCharm IDE и установить плагин multirun. Я пробовал множество решений, но в конце концов это сработало для меня!

Вы пробуете следующие способы запустить несколько скриптов Python:

Примечание. Выполнение нескольких скриптов зависит исключительно от подчеркнутой операционной системы, и оно не будет одновременным. Я был новичком в Python, когда ответил на него.

  • Это не помогает запускать их одновременно, как мы можем запускать несколько скриптов изнутри Python одновременно?
  • Параллельное выполнение в Python вызывает большие споры . Подробнее о блокировке глобального интерпретатора GIL.

Если вы хотите запустить два сценария Python параллельно, просто включите в конец сценария следующее:

[Обмен опытом] Как запустить несколько скриптов Python одновременно

Вы думаете о каких-либо сценариях приложения, когда мы хотим запустить несколько скриптов py одновременно? Есть ли у вас какие-нибудь хорошие методы, когда вы хотите одновременно обрабатывать несколько объектов параллельно? Ниже я кратко изложу некоторые советы в этой области, чтобы каждый мог гибко с ними работать в зависимости от ситуации.

1 Запустите несколько скриптов py с одним скриптом py



Вышеупомянутые файлы python находятся в той же папке.

Среди них задача 1

задача 3 - это разное содержимое, задача 1 и задача 4. Целью этого примера является использование этого метода для запуска разных задач или задач с одной и той же функцией, что совпадает с различными функциями, описанными ниже. Задача аналогичная.

Для python один скрипт для загрузки другого скрипта также может быть реализован следующим образом:

image

sys.modules похож на глобальный словарь, который загружается в память после запуска python.

sys.modules запишет новые импортированные нами модули. Он действует как буферный модуль.

** Когда модуль импортируется впервые, sys.modules запишет этот модуль. При втором импорте python будет искать прямо в словаре sys.modules, чтобы ускорить выполнение программы. **

В словаре sys.modules есть все методы, которые есть в словаре. Эти методы позволяют понять, какие модули используются в текущей среде.

Атрибут __dict__ будет представлен отдельно позже, поэтому я пропущу его здесь.

clear () - это метод очистки словаря, он используется для удаления всех элементов в словаре.

2 Запустите py-скрипт параллельно с несколькими DOS

Параллельный запуск скрипта py с несколькими командами DOS означает одновременное выполнение одного и того же скрипта py под разными командами dos.

После установки среды python используйте команду cd, чтобы переключиться в каталог, в котором находится скрипт py.

В качестве примера возьмем запуск task1.py.

win (клавиша Windows) + R, чтобы открыть операцию, введите cmd, чтобы войти в командную строку dos.



Таким же образом откройте окно команды dos и снова запустите task1.py с помощью указанной выше команды.

Теперь task1.py - это просто задание на печать. Если это задача, аналогичная обработке определенных объектов, запуск task1.py снова может обрабатывать другие объекты в соответствии с входными параметрами. В этом смысл такого параллелизма.

3 резюме

Python очень гибок. Как заставить его работать для вас удобно и достичь желаемой цели - это один из аспектов программирования, и гибкое мышление также очень важно.

Для того, чтобы решить трудности обучения новичков, специально установленная обучающая дедукция Python QUN: ⑧⑤⑤-④zero ⑧-zero начинается с нулевого фундамента к фактическим учебным пособиям по проекту, инструментам разработки и электронным книгам в различных областях Python. Поделитесь с вами текущим спросом компании на таланты и эффективные навыки Python для изучения Python и продолжайте обновлять последние учебные пособия! Нажмите, чтобы присоединиться к нашемукруг обучения python

Читайте также: