【问题标题】:Linux pyarrow undefined symbolLinux pyarrow 未定义符号
【发布时间】:2019-07-29 18:58:26
【问题描述】:

我正在运行 Python 3.7.2 并使用 Miniconda3 创建一个名为 test-env 的新环境。我已将默认频道的pyarrow 包安装到此环境中;然而,当我尝试import pyarrow 时,Python 解释器给了我一个未定义的符号错误:

Import Error: /test-env/lib/python3.7/site-packages/pyarrow/lib.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZNK5arrow6Status8ToStringB5cxx11Ev

从 SO 上的其他线程,我推测这是由于编译器不兼容造成的。我不是开发人员,所以我不知道如何解决这个问题。

【问题讨论】:

  • Nester,您在哪个操作系统上运行?在对 Arrow/Parquet 进行更新(上周晚些时候?)之后,我在 Ubuntu Linux 上看到了类似的问题。我的预感是,如果你也在 Linux 上,共享对象的这个问题在系统库中,比pyarrow
  • 这看起来像 pyarrow 使用 Apache Arrow C++ 的早期/过时版本编译时会发生什么?

标签: python-3.x pyarrow


【解决方案1】:

我通过 conda install 安装后遇到同样的错误,在我 conda 卸载后,我做了 pip install,问题就消失了。

>>> import pyarrow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dv6/anaconda3/envs/spark/lib/python3.6/site- 
  packages/pyarrow/__init__.py", line 54, in <module>
    from pyarrow.lib import cpu_count, set_cpu_count
  ImportError: /home/dv6/anaconda3/envs/spark/lib/python3.6/site- 
  packages/pyarrow/lib.cpython-36m-x86_64-linux-gnu.so: undefined symbol: 
  _ZNK5arrow5Field8B5cxx11Ev                                                                         
   >>> quit()

然后我 conda 卸载

(spark) dv6@dv6:~$ conda uninstall pyarrow

然后我点安装

(spark) dv6@dv6:~$ pip install pyarrow --user
Collecting pyarrow
  Downloading pyarrow-0.16.0-cp36-cp36m-manylinux2014_x86_64.whl (63.1 MB)
     |████████████████████████████████| 63.1 MB 25 kB/s
Requirement already satisfied: numpy>=1.14 in 
./anaconda3/envs/spark/lib/python3.6/site-packages (from pyarrow) (1.18.1)
Requirement already satisfied: six>=1.0.0 in 
./anaconda3/envs/spark/lib/python3.6/site-packages (from pyarrow) (1.14.0)
Installing collected packages: pyarrow
Successfully installed pyarrow-0.16.0
(spark) dv6@dv6:~$ python -c "import pyarrow"
(spark) dv6@dv6:~$

这是我的 Python 版本

(spark) dv6@dv6:~$ python
Python 3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

【讨论】:

    【解决方案2】:

    我建议在https://issues.apache.org/jira/projects/ARROW/issues/ARROW-4774?filter=allopenissues 开票

    提供你如何安装 pyarrow(pip 或 conda),哪个 linux 发行版。如果你能在干净的环境中重现这一点,那就更好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 2021-07-11
      • 2021-10-17
      • 1970-01-01
      相关资源
      最近更新 更多