'reticulate' r-package 导入 python 脚本时出错

Error with 'reticulate' r-package importing python script

我正在尝试使用 "reticulate" 包导入 'mycode.py'。 Whosebug上有很多问题,但没有一个能解决我的问题。

我用两种方法做了,但我得到了完全相同的错误。

1) source_python("/user/mycode.py")

我得到这个错误:

Error in py_run_file_impl(file, local, convert) : ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /user/.conda/envs/myenv/lib/python3.7/site-packages/scipy/sparse/_sparsetools.cpython-37m-x86_64-linux-gnu.so)

2) import_from_path('mycode', path='/user/', convert=TRUE)

我得到这个错误:

Error in py_module_import(module, convert = convert) : ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /user/.conda/envs/myenv/lib/python3.7/site-packages/scipy/sparse/_sparsetools.cpython-37m-x86_64-linux-gnu.so)

这可能是由于 Anaconda 附带的 libstdc++.so 版本与您系统上安装的版本之间的兼容性。

  1. 确认~/anaconda3/lib/中有一个libstdc++.so.6.0.xx(xx是最新版本的替换,我觉得27是最新的):

    ls libstdc++.so.6.0.*

  2. 确认~/anaconda3/lib/:

    中有符号链接libstdc++.so.6

    ls libstdc++.so.6

  3. 删除现有的符号链接(如果它指向另一个版本的 libstdc++.so):

    rm ~/anaconda3/lib/libstdc++.so.6

  4. 重新链接到 libstdc++.so.6.0.xx:

    ln -s libstdc++.so.6.0.xx libstdc++.so.6