繁体   English   中英

如何在 google collab 后台运行 python 脚本?

[英]how to run a python script in background in google collab?

这是我关于 stackoverflow 的第一个问题(通常我的疑惑过去常常从其他已经提出的疑惑中得到澄清,但这次我没有得到我的疑惑已经回答所以我现在直接问它)

我正在开发一款涉及一些不同类型的迷宫和谜题的游戏。因此我使用 python 进行程序生成。但是有一个问题。 我的 PC 不够强大(双核)来设计大拼图(小拼图很好,但对于更大的拼图,它看起来像是无限循环),我也不能让我的 PC 开机几个小时只是为了设计一些拼图

后来我了解了Google collab。 我检查了一下,我的 python 脚本运行良好。但我想在后台运行脚本(即使我的电脑关机,脚本也应该运行)。我该怎么做?

提前致谢

colab,即使您的 PC/浏览器停止访问 colab 运行时,也要继续运行您的脚本大约一个小时。 一个小时的空闲时间后,分配的 colab 资源将被释放,您的脚本将停止执行。

Colab 资源不能连续持有超过 9 小时。 运行时间将在最多约 9 小时后自动关闭/停止。

在后台运行脚本,请使用以下代码,

#run the script/API in the background
import subprocess
subprocess.Popen(["python", "/content/test.py", "argument1"]) 

您可以使用

%%python --bg

from datetime import datetime
import time
for i in range(5):
    print(datetime.now(), flush=True)
    time.sleep(1)

将脚本写入文件>

%%writefile srv.py
import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

像这样运行它>

get_ipython().system_raw('python3 srv.py &')

确保它正在运行>

!ps -ef
....
root         433       1  2 04:39 ?        00:00:00 python3 srv.py

最简单的后台 colab 命令:

!while true; do nohup you_command_line >/dev/null 2>&1; sleep 5; done >/dev/null 2>&1 &

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM