簡體   English   中英

運行多個Python腳本

[英]Running multiple Python scripts

我想創建一個將同時執行2個獨立腳本的簡單Python程序。 目前,這兩個腳本僅顯示一個數字序列,但我的意圖是將來使用此程序並發運行一些Twitter流程序。

我懷疑我需要使用subprocess.Popen但是我無法完全理解應該在其中添加哪些參數。 在StackOverflow上也有類似的問題,但是那里提供的代碼(粘貼在下面)無法顯示任何內容。 感謝您的幫助。

我的文件是:

thread1.py
thread2.py

import subprocess

subprocess.Popen(['screen', './thread1.py']))
subprocess.Popen(['screen', './thread2.py'])

正如旅行癖提到的,為什么要以這種方式而不是通過linux命令行呢?

否則,您發布的解決方案將達到其預期的目的,即,您正在命令行中執行此操作:

screen ./thread1.py
screen ./thread2.py

這將打開一個屏幕會話,並在該屏幕會話內運行程序並輸出,這樣您就不會直接在終端上看到輸出。 要解決輸出問題,只需執行腳本而不進行屏幕調用:

import subprocess

subprocess.Popen(['./thread1.py'])
subprocess.Popen(['./thread2.py'])

thread1.py的內容:

#!/usr/bin/env python
def countToTen():
  for i in range(10):
  print i

countToTen()

thread2.py的內容:

#!/usr/bin/env python
def countToHundreds():
for i in range(10):
  print i*100

countToHundreds()

然后,不要忘記在命令行上執行此操作:

chmod u+x thread*.py

使用supervisord

主管是過程控制系統,僅用於運行多個命令行腳本。

它具有以下特點:

  • 多重控制流程
  • 自動重啟失敗的運行
  • 記錄stdout和stderr輸出
  • 按順序啟動腳本(使用優先級)
  • 命令行實用程序以查看最新的日志輸出,停止,啟動,重新啟動進程

該解決方案僅在基於* nix的系統上有效,在Windows上不可用。

您還可以打開幾個命令提示符窗口來一次運行多個Python程序-只需在每個窗口中運行一個即可:

在每個命令提示符窗口中,轉到正確的目錄(例如C:/ Python27),然后在一個命令提示符窗口中鍵入“ python YourCodeNo 1 .py”,在下一個命令框中鍵入“ python YourCodeNo 2 .py”。

我目前正在以這種方式一次運行3個代碼,而不會降低任何代碼的速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM