首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python : FileNotFoundError [WinError 2]系统找不到指定的文件,subprocess.py:1582

Python : FileNotFoundError [WinError 2]系统找不到指定的文件,subprocess.py:1582
EN

Stack Overflow用户
提问于 2022-08-01 11:42:59
回答 2查看 5.2K关注 0票数 2

详细资料错误讯息:-

代码语言:javascript
运行
复制
 FileNotFoundError

  [WinError 2] The system cannot find the file specified

  at ~\AppData\Local\Programs\Python\Python39\lib\subprocess.py:1582 in _execute_child
      1578│             sys.audit("subprocess.Popen", executable, args, cwd, env)
      1579│ 
      1580│             # Start the process
      1581│             try:
    → 1582│                 hp, ht, pid, tid = _winapi.CreateProcess(
      1583│                     executable,
      1584│                     args,
      1585│                     # no special security
      1586│                     None,
make: *** [makefile:14: format] Error 1

我们在这里列出了类似的问题:https://bugs.python.org/issue17023

文件在那里,路径也很好。但是,为什么我会得到这个错误,因为文件在指定的位置?

在运行格式化程序指针时,我会收到这个错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-01 11:42:59

重要注意事项:-如果对库文件进行任何修改,以后可能会导致与其他程序员代码的兼容性问题。为了获得更多关于shell设置值的详细信息,请参考官方文档,这里提供了适当的链接

由于这个错误在我的工作中造成了麻烦,我现在做了下面的解决方案,一切都很好。

要解决这个错误:-我们必须在您的环境中修改subprocess.py

首先,您必须找到这个文件,然后编辑它。在我的个人电脑里,它的位置是- C:\Users\User\AppData\Local\Programs\Python\Python39\Lib.

在这段代码中:-

代码语言:javascript
运行
复制
def __init__(self, args, bufsize=-1, executable=None,
             stdin=None, stdout=None, stderr=None,
             preexec_fn=None, close_fds=_PLATFORM_DEFAULT_CLOSE_FDS,
             shell=True, cwd=None, env=None, universal_newlines=False,
             startupinfo=None, creationflags=0,
             restore_signals=True, start_new_session=False,
             pass_fds=(), *, encoding=None, errors=None):

您必须更改shell的值。

shell=False更改为shell = True

这个解决方案对我有效,我希望它也能对你有用。

谢谢。

找到了帮助,做上投票!!

票数 -1
EN

Stack Overflow用户

发布于 2022-09-14 09:27:15

您只需设置shell = True,并将其传递给您正在使用的子进程类。修改库文件将导致与其他程序员的代码的兼容性问题。为了了解为什么我们需要设置这个变量,请看文档:“所有调用都需要args,并且应该是一个字符串,或者是一个程序参数序列。提供一个参数序列通常是首选的,因为它允许模块处理任何所需的转义和参数引用(例如允许在文件名中使用空格)。如果传递单个字符串,要么shell必须是True (见下文),要么字符串必须简单地命名要执行的程序,而不指定任何参数。”

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73193119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档