#3840·click

在 Windows 上点击 "click.edit" 会引发 WinError 14001 或 87

作者: emorynb创建于 2026年9月5日更新于 2026年9月14日

我是在测试自己的 Click 应用程序时发现这个错误的。在 Windows 上尝试调用 click.edit() 的大约一半情况下,notepad.exe 将无法启动,并会出现以下两个错误消息之一(在 spoilers 部分中显示输出):

OSError: [WinError 87] The parameter is incorrect
PS C:\Users\Emory> Python .\click-notepad-me.py
Traceback (most recent call last):
  File "C:\Users\Emory\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\click\_termui_impl.py", line 729, in edit_files
    c = subprocess.Popen(
        args=shlex.split(editor) + list(filenames),
        env=environ,
    )
  File "C:\Users\Emory\AppData\Local\Python\pythoncore-3.14-64\Lib\subprocess.py", line 1038, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        pass_fds, cwd, env,
                        ^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
                        gid, gids, uid, umask,
                        ^^^^^^^^^^^^^^^^^^^^^^
                        start_new_session, process_group)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Emory\AppData\Local\Python\pythoncore-3.14-64\Lib\subprocess.py", line 1552, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
                             # no special security
                             ^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
                             cwd,
                             ^^^^
                             startupinfo)
                             ^^^^^^^^^^^^
OSError: [WinError 87] The parameter is incorrect