kdb 和 python embedPy 安装

问题描述 投票:0回答:1

几天前我发布了一个关于安装 embedPy 的类似问题。

文档在这里:https://github.com/KxSystems/embedpy并且它非常容易遵循。我正在通过下载并安装最新版本 1.5.0 来安装 embedPy 以在本地计算机上运行。

有3个步骤:

  1. 下载版本并解压
  2. 运行测试
    q test.t
  3. 将p.q和p.k放入QHOME,库文件放入$QHOME/{164,m64mw64}

为了确认我下载了 python v3.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"

我正在进行第 2 步,并且收到以下奇怪的错误:

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"];

很奇怪我收到这个错误,因为我有 python 版本 3.12。我想知道是否有人知道问题出在哪里以及如何解决?

我的另一个问题是如何将

q.p))system"where python3"
的输出更改为“C:\Users 623\AppData\Local\Programs\Python\Python312\python.exe”,这是
q.p))system"where python" 的第一个输出

非常感谢这里的任何建议,因为我一直在努力让它发挥作用。

python-3.x installation kdb embedpy
1个回答
0
投票

embedPy 1.5.0 于 2021 年 10 月发布,支持 Python 3.9

版本检查有一个错误阻止正在使用> = 3.10。 在此提交中已修复: https://github.com/KxSystems/embedPy/commit/06d3039360a077a1d43ef44c8d70144a0b1dcb66

p.q
来自:

 if[(o="w")and `3.6>`$first@[system"python3 ",;c;{system"python ",c}];'"embedPy requires python 3.6 or higher on windows"];

致:

 if[(o="w")and any 3 6>"J"$"." vs first@[system"python3 ",;c;{system"python ",c}];'"embedPy requires python 3.6 or higher on windows"];

您可以手动编辑

p.q
的副本,也可以从源代码构建以获取自上次版本以来的所有更新/修复:

https://github.com/KxSystems/embedPy?tab=readme-ov-file#clone-and-build-from-source

展望未来,PyKX 是 q 和 Python 之间的最佳接口。

https://code.kx.com/pykx/2.4/pykx-under-q/intro.html

它正在积极开发中,官方支持Python 3.12。

https://code.kx.com/pykx/2.4/release-notes/changelog.html

© www.soinside.com 2019 - 2024. All rights reserved.