【问题标题】:How to run python script on background/as a process?如何在后台/作为进程运行python脚本?
【发布时间】:2018-04-01 08:51:05
【问题描述】:

我想将 python 脚本作为进程/在后台运行。我搜索并找到了pythonw.exe,但是当我找到pythonw.exe name_of_my_script.py 时,什么也没发生。我做错了什么和/或我将如何在后台运行它?

这是我有问题的代码的一部分:

from selenium import webdriver

我会感谢你的任何帮助。

注意: 在这里的 cmets 的帮助下,我了解到 python.exe 运行也不起作用并带来错误 - NameError: name 'PROTOCOL_TLS' is not defined (即使在正常运行时很艰难,它也没有错误。

编辑: 我使用了http://pytoexe.com/,我得到了可以工作的 exe 文件,但 cmd 控制台仍然存在(也许是因为我使用了 phantomjs ?)click here

【问题讨论】:

  • 用 python.exe 运行你的脚本能正常工作吗?
  • “在后台”是什么意思?您可以在终端窗口中运行 python 脚本,并在其他窗口中执行其他任务时让它运行。
  • 在 Windows 中,您需要创建一个 Windows 服务。查看 Hammond & Robinson,Win32 上的 Python 编程,第 18 章,ISBN 978-1-56592-621-9。
  • 1.hmm 当我使用 python.exe 运行它时,它会出错 - NameError: name 'PROTOCOL_TLS' is not defined(当我正常运行它时它没有任何错误)也许是问题所在? 2. 我可以让窗口终端保持打开状态,但我想在不打开任何东西的情况下运行它——即使不是终端。把它想象成病毒 - 用户不知道他的存在,他不会在打开终端等程序后离开。 3.我试试谢谢
  • 您使用什么操作系统?如果您在 Linux/*nix 上,只需从终端运行它并在命令后面附加 &。欲了解更多信息:kb.iu.edu/d/afnz

标签: python process background background-process


【解决方案1】:

您可以前往 http://pytoexe.com 创建自己的 exe。 之后转换你的脚本。选择基于 windows 并转换它。 之后你不会有任何问题。希望有帮助。

【讨论】:

  • 嗨,首先非常感谢,seconde,我做到了,它完成了它需要做的事情,但是 cmd 控制台保持打开状态,因为我使用了 phantomjs 并且它打开了一个 cmd 控制台你知道该怎么做吗做什么?
  • 需要选择window-based作为后台进程。
  • 我选择了基于窗口的选项——它没有打开整个脚本的控制台,但每次我使用 phantomjs 时都会打开一个控制台。
  • 我会录制我的节目并在这里发布
【解决方案2】:

我会通过使用threading 模块来解决这个问题,并使用os.fork() - 但我没有运行 Windows。我建议查看Difference in behavior between os.fork and multiprocessing.Process 以了解其他操作系统。

【讨论】:

    【解决方案3】:

    “我想将 python 脚本作为进程/在后台运行”是指使窗口不可见吗?如果是这样,只需将脚本保存为 .pyw 而不是 .py

    【讨论】:

    • 我试图做 pythonw.exe name_of_my_script.py(这是相同的)但它没有做任何事情,正如我写的那样,我认为这是因为 python.exe name_of_my_script.py 引发了这个错误 PROTOCOL_SSLv23 = PROTOCOL_TLS NameError:未定义名称“PROTOCOL_TLS”。而 name_of_my_script.py 不会带来错误...
    • 无论如何,我试图将它保存为 .pyw 并在终端中运行,但同样,它并没有像 pythonw.exe name_of_my_script.py 那样做任何事情你知道为什么当我运行它时这样 - python.exe name_of_my_script.py 以这种方式运行时会引发错误 - name_of_my_script.py 不会引发任何错误?
    • 抱歉,我不知道为什么会这样。我今天制作了一个键盘记录器并将其保存为 .pyw,它工作得很好。很抱歉帮不上忙
    • 没关系 :( ,还是谢谢
    • 嗯...刚刚找到了一种方法。尝试使用 pyinstaller。使用 --noconsole 选项,如下所示:pyinstaller --noconsole scriptName.py
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2021-09-29
    相关资源
    最近更新 更多