在不同的终端上多进程 Python 但 运行 以单独跟踪在 Visual Studio 代码中的每个代码中传递的响应
Multiprocess Python but running on different terminals to separately track responses delivered in each of the codes in Visual Studio Code
Question originally asked on Super User
and suggested deleting it from
there and creating a new question here in the main community.
我有一个 运行 不间断的代码,但是 每 1 小时 它会调用另一个代码。
我需要它的原因是能够实时跟踪每个代码中传递的文本,而不会混淆它们。
有什么办法可以让这个副码运行与主码完全分开吗?
一个基本的例子是这样的:
代码一(Multiprocess_Part_1.py
):
import multiprocessing
from time import sleep
import Multiprocess_Part_2
def main():
a = 1+1
print(a)
p1 = multiprocessing.Process(target=Multiprocess_Part_2.secondary)
p1.start()
sleep(10)
main()
if __name__ == '__main__':
main()
代码二 (Multiprocess_Part_2.py
):
def secondary():
b = 2+2
print(b)
最终结果:
2
4
2
4
2
4
预期的响应,例如,有一种方法可以在单独的终端中 运行 第二个代码:
Terminal 1 Terminal 2
2 4
2 4
2 4
2 4
视觉预期示例:
不,您无法控制如何直接从 Python.
中打开 VSCode 终端
不过,你好像在Windows;你可以使用 start
来启动一个新的 Python 带有新终端的解释器 window:
os.system("start python Multiprocess_Part_2.py")
(或等效的 subprocess.call
调用)。
如果你使用 virtualenvs,你也想使用 sys.executable
而不是 python
。
# TODO: ensure this quoting is correct for Windows
os.system(f'start "{sys.executable}" Multiprocess_Part_2.py')
换句话说,您的脚本可能会变成
import os
import time
import sys
def main():
while True:
os.system(f"start \"{sys.executable}\" Multiprocess_Part_2.py")
time.sleep(10)
if __name__ == '__main__':
main()
并且您的 Multiprocess_Part_2.py
需要能够 运行 作为 stand-alone 程序:
def secondary():
b = 2+2
print(b)
if __name__ == '__main__':
secondary()
Question originally asked on
Super User
and suggested deleting it from there and creating a new question here in the main community.
我有一个 运行 不间断的代码,但是 每 1 小时 它会调用另一个代码。
我需要它的原因是能够实时跟踪每个代码中传递的文本,而不会混淆它们。
有什么办法可以让这个副码运行与主码完全分开吗?
一个基本的例子是这样的:
代码一(Multiprocess_Part_1.py
):
import multiprocessing
from time import sleep
import Multiprocess_Part_2
def main():
a = 1+1
print(a)
p1 = multiprocessing.Process(target=Multiprocess_Part_2.secondary)
p1.start()
sleep(10)
main()
if __name__ == '__main__':
main()
代码二 (Multiprocess_Part_2.py
):
def secondary():
b = 2+2
print(b)
最终结果:
2
4
2
4
2
4
预期的响应,例如,有一种方法可以在单独的终端中 运行 第二个代码:
Terminal 1 Terminal 2
2 4
2 4
2 4
2 4
视觉预期示例:
不,您无法控制如何直接从 Python.
中打开 VSCode 终端不过,你好像在Windows;你可以使用 start
来启动一个新的 Python 带有新终端的解释器 window:
os.system("start python Multiprocess_Part_2.py")
(或等效的 subprocess.call
调用)。
如果你使用 virtualenvs,你也想使用 sys.executable
而不是 python
。
# TODO: ensure this quoting is correct for Windows
os.system(f'start "{sys.executable}" Multiprocess_Part_2.py')
换句话说,您的脚本可能会变成
import os
import time
import sys
def main():
while True:
os.system(f"start \"{sys.executable}\" Multiprocess_Part_2.py")
time.sleep(10)
if __name__ == '__main__':
main()
并且您的 Multiprocess_Part_2.py
需要能够 运行 作为 stand-alone 程序:
def secondary():
b = 2+2
print(b)
if __name__ == '__main__':
secondary()