无法在Python3.6中导入PyQ:flat namesp

2024-06-13 13:55:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我收到的错误消息:

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,通过常规OS安装pyq。在


Tags: infromimportsolibpackageslibrarysite
2条回答

PyQ是一个嵌入在kdb+中的python解释器,PyQ模块不能在独立的python中导入。有三种使用pyq的方法:

  1. 在q命令提示符处或在q脚本中,以p)前缀开头一行,后面跟着一个python语句。例如

    p)from pyq import q
    p)print(q.til(5))
    

将打印0 1 2 3 4。在

  1. 您可以将python代码放在扩展名为.p的文件中,并像使用q脚本一样使用它:从命令行执行

    ^{2美元

或者使用\l命令加载。在

  1. 最后,pyq可执行文件提供了一种以交互方式运行标准Python REPL或执行Python程序的方便方法。在内部,pyq执行q python.q,因此您的代码仍然在kdb+实例中运行。请注意,当您运行pyq时,pythonrepl将接管您的kdb+实例,您不能使用标准kdb+IPC机制与kdb+实例进行交互。如果您需要此类通信,请使用上述两个选项之一。在

我想我找到了一个解决方案:当你用pyq二进制文件运行python脚本时,就可以运行[import pyq]。就像你运行一个普通的python脚本python一样xxx.py,您需要将其作为pyq运行xxx.py

相关问题 更多 >