Cannot `os.spawnl` with no arguments
未关闭
还没有人认领这个 Issue。
docs
type-bug
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Bug report
Bug description:
Python 3.8 and 3.11.9
Probably related to: https://github.com/python/cpython/issues/52284
Seems to be the same as: https://github.com/python/cpython/issues/63130
A number of bugs:
-
- Doesn't work with no arguements.
>>> os.spawnl(os.P_NOWAIT, "c:\path_to_some_program\app.exe")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen os>", line 930, in spawnl
ValueError: spawnv() arg 2 cannot be empty
- If I try and make the arguement empty it also fails. This means that I am forced to send an arguement that may trigger an unknown behaviour in the spawned application.:
>>> os.spawnl(os.P_NOWAIT, "c:\path_to_some_program\app.exe", '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen os>", line 930, in spawnl
ValueError: spawnv() arg 2 first element cannot be empty
- If any aspect of this is intended, then the documentation needs to be updated to explicitly say this. Currently it implies any arguments are optional. (Honestly, the docs for this are bad generally.)
CPython versions tested on:
3.11
Operating systems tested on:
Windows
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 traceback 中显示的 os.spawnl 实现以及 spawnl 和 spawnv 的相关文档入手。复现 Windows 下无参数和第一个参数为空的情况,然后确定预期行为,并更新实现或文档,使接受的参数要求明确且有测试覆盖。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- operating-systems
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 30/100