这是我收到的错误消息:
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyq import q
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/pyq/__init__.py", line 21, in <module> from . import _k
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/pyq/_k.cpython-36m-darwin.so, 2): Symbol not found: _b9
Referenced from:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/pyq/_k.cpython-36m-darwin.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/pyq/_k.cpython-36m-darwin.so
我的python版本是3.6,pyq版本是4.0.1。
我通过 pip 安装了 pyq,并通过常规操作系统安装安装了 Python。
最佳答案
PyQ 是嵌入在 kdb+ 中的 python 解释器,pyq 模块无法在独立的 python 中导入。 pyq的使用方法有3种:
在 q 命令提示符或 q 脚本中,以
p)
前缀开始该行,后面跟一个 python 语句。例如,p)from pyq import q p)print(q.til(5))
将打印0 1 2 3 4
。
您可以将 Python 代码放入扩展名为
.p
的文件中,并像使用 q 脚本一样使用它:从命令行执行$ q foo.p
或使用\l
命令加载。
- 最后,
pyq
可执行文件提供了一种以交互方式运行标准 Python REPL 或执行 Python 程序的便捷方法。在内部,pyq
执行q python.q
,因此您的代码仍然在 kdb+ 实例内运行。请注意,当您运行 pyq 时,Python REPL 会接管,您无法使用标准 kdb+ IPC 机制与 kdb+ 实例进行交互。如果您需要此类通信,请使用上述两个选项之一。
关于python - 无法在 Python 3.6 中导入 PyQ : flat namespace error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668738/