我正在运行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
从其他线程中,我收集到这是由于编译器不兼容所致。我不是开发人员,所以我不确定如何解决此问题。
我安装了Conda安装后,我的错误是相同的错误,Conda卸载后,我进行了PIP安装,问题就消失了。
>>> 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
然后我pip安装
(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.
>>>
我建议我在https://issues.apache.org/jira/projects/arrow/isrow/issues/arrow-47774?filter = allopeNissues
提供您如何安装Pyarrow(PIP或CONDA),该分布的Linux分布。如果您可以在干净的环境中复制它,甚至更好。