在窗口模式下运行时,Pyinstaller 子进程异常



我正在使用pyinstaller来创建我的应用程序。在我的 django 应用程序中,我正在使用子进程。当我在noconsole模式下执行pyinstaller时,它会抛出错误。错误日志:

Traceback (most recent call last):
  File "site-packagesdjangocorehandlersbase.py", line 149, in get_response
  File "site-packagesdjangocorehandlersbase.py", line 147, in get_response
  File "crumbs_tableauviews.py", line 1603, in parser
  File "site-packagesdjangoshortcuts.py", line 67, in render
  File "site-packagesdjangotemplateloader.py", line 96, in render_to_string
  File "site-packagesdjangotemplateloader.py", line 43, in get_template
django.template.exceptions.TemplateDoesNotExist: helpers/error.html
Internal Server Error: /
Traceback (most recent call last):
  File "crumbs_tableauviews.py", line 286, in parser
  File "crumbs_tableauviews.py", line 248, in mac_list
  File "subprocess.py", line 336, in check_output
  File "subprocess.py", line 403, in run
  File "subprocess.py", line 667, in __init__
  File "subprocess.py", line 905, in _get_handles
  File "subprocess.py", line 955, in _make_inheritable
OSError: [WinError 6] The handle is invalid
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "site-packagesdjangocorehandlersbase.py", line 149, in get_response
  File "site-packagesdjangocorehandlersbase.py", line 147, in get_response
  File "crumbs_tableauviews.py", line 1603, in parser
  File "site-packagesdjangoshortcuts.py", line 67, in render
  File "site-packagesdjangotemplateloader.py", line 96, in render_to_string
  File "site-packagesdjangotemplateloader.py", line 43, in get_template
django.template.exceptions.TemplateDoesNotExist: helpers/error.html
Not Found: /static/parser/bootstrap.css.map

在窗口模式下调用子进程时,需要定义 stdin 和 stderr。例:

p = subprocess.Popen(["netstat", "-a", "-n", "-o"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL)

这是因为如果这些句柄未设置为 null,则窗口会尝试复制这些句柄。

最新更新