【问题标题】:ImportError: libsasl2.so.3: cannot open shared object file: No such file or directoryImportError:libsasl2.so.3:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2017-05-31 20:47:32
【问题描述】:

我写了这段代码:

from pyhive import hive

connection = hive.connect("quickstart.cloudera", username="cloudera",
                          port=10000)
cursor = connection.cursor()
query = "SELECT * FROM capacite_part"
cursor.execute(query)
for row in cursor.fetchall():
    print(row[0], row[1])

我明白了:

In [6]: runfile('/home/cloudera/lire data capacite_part.py', wdir='/home/cloudera')
Traceback (most recent call last):

  File "<ipython-input-6-c3cdfa2f79a9>", line 1, in <module>
    runfile('/home/cloudera/lire data capacite_part.py', wdir='/home/cloudera')

  File "/home/cloudera/anaconda2/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)

  File "/home/cloudera/anaconda2/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 94, in execfile
    builtins.execfile(filename, *where)

  File "/home/cloudera/lire data capacite_part.py", line 7, in <module>
    from pyhive import hive

  File "/home/cloudera/anaconda2/lib/python2.7/site-packages/pyhive/hive.py", line 22, in <module>
    import sasl

  File "/home/cloudera/anaconda2/lib/python2.7/site-packages/sasl/__init__.py", line 15, in <module>
    from sasl.saslwrapper import *

ImportError: libsasl2.so.3: cannot open shared object file: No such file or directory

这是我的配置:

CLOUDERA CD5 CENTOS 6.7

Python 2.7.13 :: Anaconda 4.4.0 (64-bit)

这是 pip pkg :

[cloudera@quickstart ~]$ pip freeze

alabaster==0.7.10
anaconda-client==1.6.3
anaconda-navigator==1.6.2
anaconda-project==0.6.0
asn1crypto==0.22.0
astroid==1.4.9
astropy==1.3.2
Babel==2.4.0
backports-abc==0.5
backports.shutil-get-terminal-size==1.0.0
backports.ssl-match-hostname==3.4.0.2
beautifulsoup4==4.6.0
bitarray==0.8.1
blaze==0.10.1
bleach==1.5.0
bokeh==0.12.5
boto==2.46.1
Bottleneck==1.2.1
cdecimal==2.3
cffi==1.10.0
chardet==3.0.3
click==6.7
cloudpickle==0.2.2
clyent==1.2.2
colorama==0.3.9
conda==4.3.21
configparser==3.5.0
contextlib2==0.5.5
cryptography==1.8.1
cycler==0.10.0
Cython==0.25.2
cytoolz==0.8.2
dask==0.14.3
datashape==0.5.4
decorator==4.0.11
distributed==1.16.3
docutils==0.13.1
entrypoints==0.2.2
enum34==1.1.6
et-xmlfile==1.0.1
fastcache==1.0.2
Flask==0.12.2
Flask-Cors==3.0.2
funcsigs==1.0.2
functools32==3.2.3.post2
future==0.16.0
futures==3.1.1
gevent==1.2.1
greenlet==0.4.12
grin==1.2.1
h5py==2.7.0
HeapDict==1.0.0
html5lib==0.999
idna==2.5
imagesize==0.7.1
ipaddress==1.0.18
ipykernel==4.6.1
ipython==5.3.0
ipython-genutils==0.2.0
ipywidgets==6.0.0
isort==4.2.5
itsdangerous==0.24
jdcal==1.3
jedi==0.10.2
Jinja2==2.9.6
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.0.1
jupyter-console==5.1.0
jupyter-core==4.3.0
lazy-object-proxy==1.2.2
llvmlite==0.18.0
locket==0.2.0
lxml==3.7.3
MarkupSafe==0.23
matplotlib==2.0.2
mistune==0.7.4
mpmath==0.19
msgpack-python==0.4.8
multipledispatch==0.4.9
navigator-updater==0.1.0
nbconvert==5.1.1
nbformat==4.3.0
networkx==1.11
nltk==3.2.3
nose==1.3.7
notebook==5.0.0
numba==0.33.0+0.ge79330a.dirty
numexpr==2.6.2
numpy==1.12.1
numpydoc==0.6.0
odo==0.5.0
olefile==0.44
openpyxl==2.4.7
packaging==16.8
pandas==0.20.1
pandocfilters==1.4.1
partd==0.3.8
pathlib2==2.2.1
patsy==0.4.1
pep8==1.7.0
pexpect==4.2.1
pickleshare==0.7.4
Pillow==4.1.1
ply==3.10
prompt-toolkit==1.0.14
psutil==5.2.2
ptyprocess==0.5.1
py==1.4.33
pycairo==1.10.0
pycosat==0.6.2
pycparser==2.17
pycrypto==2.6.1
pycurl==7.43.0
pyflakes==1.5.0
Pygments==2.2.0
PyHive==0.3.0
pylint==1.6.4
pyodbc==4.0.16
pyOpenSSL==17.0.0
pyparsing==2.1.4
pytest==3.0.7
python-dateutil==2.6.0
pytz==2017.2
PyWavelets==0.5.2
PyYAML==3.12
pyzmq==16.0.2
QtAwesome==0.4.4
qtconsole==4.3.0
QtPy==1.2.1
requests==2.14.2
rope==0.9.4
sasl==0.2.1
scandir==1.5
scikit-image==0.13.0
scikit-learn==0.18.1
scipy==0.19.0
seaborn==0.7.1
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.10.0
snowballstemmer==1.2.1
sortedcollections==0.5.3
sortedcontainers==1.5.7
Sphinx==1.5.6
spyder==3.1.4
SQLAlchemy==1.1.9
statsmodels==0.8.0
subprocess32==3.2.7
sympy==1.0
tables==3.3.0
tblib==1.3.2
terminado==0.6
testpath==0.3
thrift==0.10.0
thrift-sasl==0.2.1
toolz==0.8.2
tornado==4.5.1
traitlets==4.3.2
unicodecsv==0.14.1
wcwidth==0.1.7
Werkzeug==0.12.2
widgetsnbextension==2.0.0
wrapt==1.10.10
xlrd==1.0.0
XlsxWriter==0.9.6
xlwt==1.2.0
zict==0.1.2

有人知道它为什么不工作吗?

提前非常感谢...

(我之前已经安装了最新的 Anaconda 发行版,使用 Python 3.6 ...它正在做同样的事情...)

我在哪里可以获得用于 centos 6.7 和 x64 位的新 libsasl2.so.3...?

【问题讨论】:

  • 您找到解决方案了吗?我面临着一个非常相似的问题。

标签: python hive centos anaconda cloudera


【解决方案1】:

有时这些版本问题可以通过创建与同一库的另一个版本的符号链接来解决。如果您安装了 libsasl2.so,请为其创建一个链接文件 libsasl2.so.2:

sudo ln -s /usr/lib64/libsasl2.so /usr/lib64/libsasl2.so.2

【讨论】:

  • 如果它们不同而不仅仅是名称不同,这样做是否安全?
  • 不是这方面的专家,但在进行故障排除时,我观察到在大多数情况下,这些是同一库的不同版本,除非发生重大变化,否则它们工作得很好。一个非常常见的示例是,您的发行版需要特定库的 v58,例如CentOS 7 而 v58 还没有为 CentOS7 发布。 CentOS 7 可用的最高版本是 v55,因此您需要创建从 v55 到 v58 的符号链接。
  • 更深入的了解请参考下面的线程https://unix.stackexchange.com/questions/475/how-do-so-shared-object-numbers-work或相关的kernel/gcc文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 2014-01-17
  • 2021-12-20
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多