【问题标题】:python http server hide consolepython http服务器隐藏控制台
【发布时间】:2022-01-04 12:30:34
【问题描述】:

我正在尝试在本地网络上托管我的文件的脚本,这是我的代码:

import os
import getpass

os.system('python -m http.server --directory C:/Users/'+getpass.getuser())

但问题是 http 控制台显示在我的桌面上,这很烦人!所以我试图通过重命名 .pyw 中的文件来隐藏,但它不起作用。

你知道如何隐藏这个控制台吗?谢谢 :D

【问题讨论】:

    标签: python http console http.server


    【解决方案1】:

    在 Linux 上,您可以使用 Nohup 忽略 HUP 信号。

    您可以像这样在代码中添加 nohup:

    import os
    import getpass
    
    os.system('nohup python -m http.server --directory C:/Users/'+getpass.getuser())
    

    更新

    windows 解决方案

    import os
    import subprocess
    import getpass
    
    env = os.environ
    directory = 'C:/Users/'+getpass.getuser()
    proc = subprocess.Popen(['python', '-m', 'http.server', '--directory', directory], env=env)
    

    【讨论】:

    • 感谢您的回复!不幸的是,我在 Windows 10 >.
    • @Lun4rIum 检查更新。
    • 我试过你的代码,但它仍然显示控制台。我想我会尽量把它隐藏起来
    【解决方案2】:

    假设您使用的是 Linux(或其他基于 unix 的操作系统),您可以在启动服务器后从控制台分离进程。

    这是使用screen command 的一种方法

    sudo apt install -Y screen
    

    然后

    screen -d -m "python3 script.py"
    

    script.py 是您共享的 sn-p。

    Reference for the flags

    ...

    -d -m

    以分离模式启动屏幕。这会创建一个新会话,但不会附加到它。这对于系统启动脚本很有用。

    【讨论】:

    • 看路径!
    • 感谢您的回复!不幸的是,我在 Windows 10 >.
    【解决方案3】:

    我找到了一种方法,使用 VBS 脚本:

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run chr(34) & "main.py" & Chr(34), 0
    Set WshShell = Nothing
    

    只需将main.py 替换为您的脚本路径即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2022-10-12
      • 2011-10-22
      相关资源
      最近更新 更多