一聚教程网:一个值得你收藏的教程网站

热门教程

_winapi.CreateProcess引发FileNotFoundError:WinError 2提示系统找不到指定文件

时间:2026-05-29 11:10:01 编辑:袖梨 来源:一聚教程网

在Windows10环境下运行Python代码时,若出现"系统找不到指定文件"的错误提示,通常与缺失关键执行文件有关。本文将详细介绍两种解决方案,帮助开发者快速定位并解决该问题。

方法1:

参考:

hellowac.github.io/uv-zh-cn/ge…

juejin.cn/post/754908…

zhuanlan.zhihu.com/p/195019831…

具体过程如下:

运行环境:window10

执行代码

from fastmcp import Client
from fastmcp.client.transports import StdioTransport
import asynciotransport = StdioTransport(
    command="uvx",
    args=["amap-mcp-server"],
    env={'AMAP_MAPS_API_KEY': 'xxx'}
)client = Client(transport)
async def example():
    async with client:
        list = await client.list_tools()
        print(f"{list}")if __name__ == "__main__":
    asyncio.run(example(),debug=True) #debug模式看日志

报错:

hp, ht, pid, tid = _winapi.CreateProcess(executable, args,

FileNotFoundError: [WinError 2] 系统找不到指定的文件

 File "E:xxxminiconda3Libsubprocess.py", line 1554, in _execute_child
    |     hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    |                        ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
    |                              # no special security
    |                              ^^^^^^^^^^^^^^^^^^^^^
    |     ...<4 lines>...
    |                              cwd,
    |                              ^^^^
    |                              startupinfo)
    |                              ^^^^^^^^^^^^
    | FileNotFoundError: [WinError 2] 系统找不到指定的文件。

原因: 执行环境中缺少uvx的执行文件uvx.exe 可依次检查如下三个地方是否有安装uvx,是否有uvx.exe文件。保证至少有一处地方有。

1-1:项目的虚拟环境 在项目下的.venv虚拟环境中是否安装uvx.exe .venvScriptsuvx.EXE

1-2:项目依赖的python库下 External Libraries的python依赖库下.venvScriptsuvx.EXE

1-3:电脑环境安装 电脑安装uvx并配置到环境变量中 自定义安装路径

解决方法: (实践有效):安装uvx并配置到环境变量中,自定义安装目录。

安装uvx,并配置环境变量

1、配置uvx安装路径,添加到环境变量中,重启电脑使之生效。

安装路径:
UV_INSTALL_DIR = E:Programsuvx

2、安装uvx

powershell以管理员身份运行,执行如下命令:

powershell -ExecutionPolicy ByPass -c "irm  | iex"

3、验证

win+Ruvx --version

成功显示:uvx信息即成功

4、重启pycharm执行

正常运行

方法2:

参考:

zhuanlan.zhihu.com/p/588747621

www.cnblogs.com/ZerlinM/p/1…

(待实践:)

1、找到当前虚拟环境下的Lib/subprocess.py的文件,修改这个模块中的in _execute_child函数的初始化函数init函数中的shell = False 改成shell = True。

2、找到subprocess.py 找到poper类修改里面的shell=False 为 shell=True

通过上述两种方法,开发者可以根据实际情况选择最适合的解决方案。第一种方法通过安装缺失的执行文件从根本上解决问题,第二种方法则通过修改系统参数来规避错误,两者各有优劣,建议优先尝试第一种方案。

热门栏目