You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

embedPy安装版本检测报错及python3路径修改求助

解决embedPy安装时的Python版本检测错误与路径指定问题

问题概述

安装embedPy 1.5.0时,执行测试命令q test.q报错'embedPy requires python 3.6 or higher on windows',但本地已安装Python 3.12。同时q.p))system"where python3"返回的是WindowsApps目录下的快捷方式,需要将其指定到Python 3.12的实际安装路径。

相关命令输出

q.p))system"where python3"
"C:\\Users\\a623\\AppData\\Local\\Microsoft\\WindowsApps\\python3.exe"
q.p))system"where python"
"C:\\Users\\a623\\AppData\\Local\\Programs\\Python\\Python312\\python.exe"
"C:\\Users\\a623\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe"

报错详情

M:\M\embedPy_windows-1.5.0>q test.q
KDB+ 4.0 2022.01.14 Copyright (C) 1993-2022 Kx Systems
++++++++++++++++++++++++++++++++++++++++++++++++++++
Loading custom startup.  Customize in C:/q/q.q
Start timestamp (local): 2024.04.01D09:36:01.173696000
Full display precisions: \P 0
C:/q/help.q
C:/q/c/odbc.k
C:/q/ps.k
'embedPy requires python 3.6 or higher on windows
  [5]  M:\M\embedPy_windows-1.5.0\p.q:10:
 c:"-c \"",pr["'.'.join([str(getattr(__import__('sys').version_info,x))for x in ['major','minor']])"],"\"2>",$[o="w";"nul <nul";"/dev/null"];
 if[(o="w")and `3.6>`$first@[system"python3 ",;c;{system"python ",c}];'"embedPy requires python 3.6 or higher on windows"];
                                                                       ^
 c:"-c \"",pr[$[o="w";sc["/python";`BINDIR`VERSION];sc["/libpython";`LIBDIR`LDVERSION]],"+'",$[o="w";".dll";o="l";".so";".dylib"],"'"],pr["__import__('sys').base_prefix"],pr["__import__('sys').prefix"],pr["__import__('sys').executable"],"\"2>",$[o="w";"nul <nul";"/dev/null"];

问题原因

embedPy的p.q脚本优先调用python3命令,但WindowsApps目录下的python3.exe是无效快捷方式,无法正确返回版本信息,导致版本检测失败;同时系统python3命令指向错误路径。

解决方法

1. 修正python3命令指向

  • 打开命令提示符,先删除原有的python3.exe快捷方式:
    del "C:\Users\a623\AppData\Local\Microsoft\WindowsApps\python3.exe"
    
  • 创建硬链接指向Python 3.12的实际路径:
    mklink "C:\Users\a623\AppData\Local\Microsoft\WindowsApps\python3.exe" "C:\Users\a623\AppData\Local\Programs\Python\Python312\python.exe"
    
  • 或者将Python 3.12的安装目录(C:\Users\a623\AppData\Local\Programs\Python\Python312)移到系统环境变量PATH的最顶端,让系统优先识别正确的Python版本。

2. 修改embedPy版本检测逻辑(临时方案)

如果不想修改系统命令指向,可直接修改p.q脚本:

  • 打开M:\M\embedPy_windows-1.5.0\p.q,找到第10行的版本检测代码:
    if[(o="w")and `3.6>`$first@[system"python3 ",;c;{system"python ",c}];' "embedPy requires python 3.6 or higher on windows"];
    
  • 将代码修改为直接调用python命令(你的python已指向正确版本):
    if[(o="w")and `3.6>`$first@[{system"python ",c}];' "embedPy requires python 3.6 or higher on windows"];
    
  • 保存后重新执行q test.q测试。

3. 验证修改效果

执行以下命令确认python3路径已更新:

q.p))system"where python3"

返回C:\Users\a623\AppData\Local\Programs\Python\Python312\python.exe即为成功,之后运行q test.q可正常启动。

内容的提问来源于stack exchange,提问作者mmv456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:21:14