python shared library not found in R reticulate

丶灬走出姿态 提交于 2019-12-24 18:58:55

问题


I am having trouble getting the reticulate package in R to work.

It cannot find the shared LIBPYTHON file it needs, no matter which version of Python I have loaded via module load, or which version I tell reticulate to use, directly within R.

I'm working on the universty's cluster, which has several versions of Python installed and are loaded via modules.

Thank you for your help.

a) Using version 2.7.9 (default version from module load CBC) :

> reticulate::py_discover_config()

python:         /opt/Python/Python-2.7.9/bin/python
libpython:      /opt/Python/Python-2.7.9/lib/libpython2.7.so[NOT FOUND]
pythonhome:     /opt/Python/Python-2.7.9:/opt/Python/Python-2.7.9
version:        2.7.9 (default, Apr 23 2015, 22:07:47)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]
numpy:          /opt/Python/Python-2.7.9/lib/python2.7/site-packages/numpy
numpy_version:  1.9.2

b) Using version 2.7.10 by specifying within R to reticulate :

> reticulate::use_python("/opt/Python/Python-2.7.10/bin/python2")
> reticulate::py_discover_config()

/opt/Python/Python-2.7.10/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Error in system2(command = python, args = paste0("\"", config_script,  :
  error in running command

c) Using version 2.7.10 by running module load CBC python/2.7.10 prior to starting R / loading reticulate :


> system("which python")

/opt/Python/Python-2.7.10/bin/python

> library(reticulate)
> py_discover_config()
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "/home/csandoval/R/x86_64-pc-linux-gnu-library/3.5/reticulate/config/config.py", line 3, in <module>
    import os
  File "/opt/Python/Python-2.7.10/lib/python2.7/os.py", line 400, in <module>
    import UserDict
  File "/opt/Python/Python-2.7.10/lib/python2.7/UserDict.py", line 84, in <module>
    _abcoll.MutableMapping.register(IterableUserDict)
  File "/opt/Python/Python-2.7.10/lib/python2.7/abc.py", line 109, in register
    if issubclass(subclass, cls):
  File "/opt/Python/Python-2.7.10/lib/python2.7/abc.py", line 184, in __subclasscheck__
    cls._abc_negative_cache.add(subclass)
  File "/opt/Python/Python-2.7.10/lib/python2.7/_weakrefset.py", line 86, in add
    self.data.add(ref(item, self._remove))
TypeError: cannot create weak reference to 'classobj' object
Error in python_config(python_version, required_module, python_versions) :
  Error 1 occurred running /usr/bin/python
In addition: Warning message:
In system2(command = python, args = paste0("\"", config_script,  :
  running command ''/usr/bin/python' "/home/csandoval/R/x86_64-pc-linux-gnu-library/3.5/reticulate/config/config.py"' had status 1

The shared libraries (.so) files do seem to exist, at least for 2.7.10, so I am at a complete loss as to what to try next:

> locate 'libpython2'

/opt/Python/Python-2.7.10/lib/libpython2.7.so
/opt/Python/Python-2.7.10/lib/libpython2.7.so.1.0
/opt/Python/Python-2.7.10/lib/python2.7/config/libpython2.7.a
/opt/Python/Python-2.7.3/lib/libpython2.7.a
/opt/Python/Python-2.7.3/lib/python2.7/config/libpython2.7.a
/opt/Python/Python-2.7.4/lib/libpython2.7.a
/opt/Python/Python-2.7.4/lib/python2.7/config/libpython2.7.a
/opt/Python/Python-2.7.9/lib/libpython2.7.a
/opt/Python/Python-2.7.9/lib/python2.7/config/libpython2.7.a
/opt/local/lib/libpython2.6.a
/opt/local/lib/libpython2.6.a.old
/opt/local/lib/python2.6/config/libpython2.6.a
/opt/local/lib/python2.6.old/config/libpython2.6.a
/opt/scyld/python/2.6.5/lib/libpython2.6.so
/opt/scyld/python/2.6.5/lib/libpython2.6.so.0.1
/opt/scyld/python/2.6.5/lib/python2.6/config/libpython2.6.a
/usr/cellprofiler/lib/libpython2.7.so
/usr/cellprofiler/lib/libpython2.7.so.1.0
/usr/cellprofiler/lib/python2.7/config/libpython2.7.a
/usr/lib64/libpython2.6.so
/usr/lib64/libpython2.6.so.1.0
/usr/lib64/python2.6/config/libpython2.6.so
/usr/share/systemtap/tapset/libpython2.6-64.stp

来源:https://stackoverflow.com/questions/54932463/python-shared-library-not-found-in-r-reticulate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!