使用网状将特定的python软件包(RDKit)导入R时出现问题

时间:2018-11-14 03:14:47

标签: python r reticulate

我在运行High Sierra的MacBook Pro上使用R(羽毛喷雾,版本3.5.1)和RStudio(版本1.1.456)中的网状格式导入特定软件包时遇到问题。我正在使用的Python模块称为RDKit(https://github.com/rdkit/rdkit)。从Python命令行(或Spyder)导入时,该软件包可在同一台计算机上正常运行,如下所示:

hist, bins = np.histogram(x)
hist = [129, 126, 94, 133, 179, 206, 142, 147, 90, 185] 
bins = [0.,         0.09999926, 0.19999853, 0.29999779, 0.39999706,
        0.49999632, 0.59999559, 0.69999485, 0.79999412, 0.8999933,
        0.99999265]

当我尝试使用网状结构在RStudio中导入RDKit时,失败如下:

>>> import rdkit
import rdkit # directory /Users/pleeferguson/apps/rdkit/rdkit
# /Users/pleeferguson/apps/rdkit/rdkit/__init__.pyc matches /Users/pleeferguson/apps/rdkit/rdkit/__init__.py
import rdkit # precompiled from /Users/pleeferguson/apps/rdkit/rdkit/__init__.pyc
dlopen("/Users/pleeferguson/apps/rdkit/rdkit/rdBase.so", 2);
import rdkit.rdBase # dynamically loaded from /Users/pleeferguson/apps/rdkit/rdkit/rdBase.so
>>>

我还尝试从终端(RStudio外部)直接在R内导入模块,在那里我收到了更多有用的错误消息:

> reticulate::use_python("/Library/Frameworks/Python.framework/Versions/2.7/bin/python")
> library(reticulate)
> rdkit <- import_from_path("rdkit", "/Users/pleeferguson/apps/rdkit/rdkit")
Error in py_module_import(module, convert = convert) : 
  ImportError: No module named rdBase
> 

我已验证在正确的位置确实存在一个名为libRDKitRDBoost.1.dylib的符号链接,该符号链接指向正确的dylib文件(它确实存在于RDKit软件包的lib目录中)。

此外,我可以使用网状结构在RStudio中导入其他软件包(例如熊猫):

> reticulate::use_python("/Library/Frameworks/Python.framework/Versions/2.7/bin/python")
> library(reticulate)
> rdkit <- import("rdkit")
Error in py_module_import(module, convert = convert) : 
  ImportError: dlopen(/Users/pleeferguson/apps/rdkit/rdkit/rdBase.so, 2): Library not loaded: @rpath/libRDKitRDBoost.1.dylib
  Referenced from: /Users/pleeferguson/apps/rdkit/rdkit/rdBase.so
  Reason: image not found

Detailed traceback: 
  File "/Users/pleeferguson/apps/rdkit/rdkit/__init__.py", line 2, in <module>
    from .rdBase import rdkitVersion as __version__
>

在我的另一台同时具有R(Sincere Pumpkin Patch)和RDKit(2015版)的早期版本的MacBook Pro上,rdkit软件包使用网状结构从RStudio内加载得很好(并且可以正常使用)。

任何想法在这里会发生什么?我不认为这是RStudio的问题,因为我尝试安装RStudio的每日最新版本,但行为相同。另外,我无法从终端(RStudio外部)的R中导入包,这一事实告诉我它一定是其他东西。

0 个答案:

没有答案